• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Pencil.C++

            更新速度可能會晚于http://blog.csdn.net/bilaopao

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              34 隨筆 :: 0 文章 :: 40 評論 :: 0 Trackbacks
              1 -------------------------SqList.h------------------------------------
              2 /*構造線性表*/
              3 #include<iostream>
              4 #ifndef SqList_H_
              5 #define SqList_H_//定義頭文件
              6 #define initSize 100//初始化大小
              7 #define increment 10//增長步長
              8 typedef int ElemType;//定義元素類型
              9 class SqList
             10 {
             11 private:
             12  ElemType* elem; //聲明元素指針
             13     int length;//元素個數
             14  int listSize;//表長度
             15 public:
             16  SqList();//初始化表
             17  bool isFull()const;//查看表是否為空
             18  bool isEmpty()const;//查看表是否滿
             19  ElemType getElem(int)const;//查看特定位置元素
             20  bool insert(int,ElemType);//插入特定位置元素
             21  bool insert(ElemType);//插入末尾元素
             22  void creat();//創建表
             23  void merge(SqList&,SqList&);//合并表并排序
             24  bool del(int);//刪除表
             25  void displayElem();//顯示表情況
             26  ~SqList();//析構
             27 };
             28 #endif
             29 -------------------------SqList.cpp------------------------------------
             30 #include"SqList.h"
             31 using namespace std;
             32 SqList::SqList(){
             33  elem=new ElemType[initSize];
             34  length=0;
             35  listSize=initSize;
             36 }
             37 bool SqList::isEmpty() const{
             38  return length==0;
             39 }
             40 bool SqList::isFull() const{
             41  return length==listSize;
             42 }
             43 ElemType SqList::getElem(int i) const{
             44  if(i>length||i<1)
             45  {
             46   cout<<"i-value is illegal!";
             47   return 0;
             48  }
             49  else
             50   return elem[i-1];
             51 }
             52 bool SqList::insert( int i, ElemType e){
             53  if(i>length+1||i<1)
             54  {
             55   cout<<"i-value is illegal!";
             56   return false;
             57  }
             58    if(isFull())//表滿重新分配內存
             59  {
             60   ElemType* newBase=new ElemType[listSize+increment];
             61   for(int i=0;i<=listSize;i++)
             62    newBase[i]=elem[i];
             63   delete[] elem;
             64   elem=newBase;
             65   listSize+=increment;
             66  }
             67  ElemType* p=&(elem[i-1]);
             68  ElemType* q=&(elem[length-1]);
             69  for(;q>=p;--q)
             70   *(q+1)=*q;
             71  *p=e;
             72  ++length;
             73  return true;
             74 }
             75 bool SqList::insert(ElemType e){
             76    if(isFull())//表滿重新分配內存
             77  {
             78   ElemType* newBase=new ElemType[listSize+increment];
             79   for(int i=0;i<=listSize;i++)
             80    newBase[i]=elem[i];
             81   delete[] elem;
             82   elem=newBase;
             83   listSize+=increment;
             84  }
             85  ElemType* p=&(elem[length]);
             86  *p=e;
             87  ++length;
             88  return true;
             89 }
             90 void SqList::creat(){
             91  cout<<"為表添加元素(輸入0退出!)"<<endl;
             92  while(true)
             93  {
             94   int elem;
             95   cin>>elem;
             96   if(elem!=0)
             97   {
             98    insert(elem);
             99   }
            100   else
            101   {
            102    cout<<"表創建完成,大小為"<<listSize<<"."<<endl;
            103    cout<<"表現有"<<length<<"個元素:"<<endl;
            104    for(int i=1;i<=length;i++)
            105     cout<<getElem(i)<<",";
            106    cout<<endl;
            107    break;
            108   }
            109  }
            110 }
            111 void SqList::merge(SqList &La,SqList &Lb){
            112  int i=1,j=1,k=0;
            113  while(i<=La.length&&j<=Lb.length)
            114  {
            115   if(La.getElem(i)<=Lb.getElem(j))
            116   {
            117    insert(++k,La.getElem(i));
            118    ++i;
            119   }
            120   else
            121   {
            122             insert(++k,Lb.getElem(j));
            123    ++j;
            124   }
            125  }
            126  while(i<=La.length)
            127  {
            128         insert(++k,La.getElem(i));
            129   ++i;
            130  }
            131  while(j<=Lb.length)
            132  {
            133         insert(++k,Lb.getElem(j));
            134   ++j;
            135  }
            136  cout<<"合并后元素為:"<<endl;
            137  for(int i=1;i<=length;i++)
            138   cout<<getElem(i)<<endl;
            139 }
            140 bool SqList::del( int i){
            141  if(i>length||i<1)
            142  {
            143   cout<<"i-value is illegal!";
            144   return false;
            145  }
            146  ElemType* p=&(elem[i-1]);
            147  ElemType* q=&(elem[length-1]);
            148  for(++p;p<=q;++p)
            149   *(p-1)=*p;
            150  --length;
            151  return true;
            152 }
            153 void SqList::displayElem(){
            154  cout<<"表的大小為"<<listSize<<"."<<endl;
            155  cout<<"表現有"<<length<<"個元素:"<<endl;
            156  for(int i=1;i<=length;i++)
            157   cout<<getElem(i)<<",";
            158  cout<<endl;
            159 }
            160 SqList::~SqList(){
            161 delete[] elem;
            162 }
            163 -------------------------useSqList.cpp------------------------------------
            164 #include"SqList.h"
            165 using namespace std;
            166 int main()
            167 {
            168  cout<<"創建表A:"<<endl;
            169  SqList sqa;
            170  sqa.creat();
            171  cout<<"創建表B:"<<endl;
            172  SqList sqb;
            173  sqb.creat();
            174  cout<<"合并表A、B的元素,并按從小到大的順序放入表C!"<<endl;
            175  SqList sqc;
            176  sqc.merge(sqa,sqb);
            177  cout<<"操作表C:"<<endl;
            178  cout<<"選擇操作(Q退出):"<<endl;
            179  cout<<"1.查看表情況(A):"<<endl;
            180  cout<<"2.查看元素特定元素(C):"<<endl;
            181  cout<<"3.插入表尾元素(I):"<<endl;
            182  cout<<"4.插入特定位置元素(L):"<<endl;
            183  cout<<"5.刪除元素(D):"<<endl;
            184  char str;
            185  cin>>str;
            186  while(toupper(str)!='Q')
            187  {
            188   switch(toupper(str))
            189   {
            190       case 'A':
            191    sqc.displayElem();
            192    break;
            193    case 'C':
            194     cout<<"請輸入要查看元素位置:";
            195     int i;
            196     cin>>i;
            197     cout<<"表中第"<<i<<"個元素為"<<sqc.getElem(i)<<endl;
            198     break;
            199    case 'I':
            200     cout<<"請輸入要插入元素:";
            201     int elem;
            202     cin>>elem;
            203     sqc.insert(elem);
            204     sqc.displayElem();
            205     break;
            206    case 'L':
            207     cout<<"請輸入插入元素位置:";
            208     int j;
            209     cin>>j;
            210     cout<<"請輸入要插入元素:";
            211                 int jelem;
            212     cin>>jelem;
            213     sqc.insert(j,jelem);
            214     sqc.displayElem();
            215     break;
            216    case 'D':
            217     cout<<"請輸入要刪除元素位置:";
            218     int k;
            219     cin>>k;
            220     sqc.del(k);
            221     sqc.displayElem();
            222     break;
            223    default:
            224     cout<<"請輸入正確選項!"<<endl;
            225   }
            226   cout<<"輸入選項繼續操作:";
            227   cin>>str;
            228  }
            229  cout<<"操作結束!"<<endl;
            230  cin.get();
            231  cin.get();
            232 }
            233 

            posted on 2009-09-25 19:19 Pencil.C++ 閱讀(770) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構與算法
            国产叼嘿久久精品久久| 久久成人国产精品二三区| 久久天堂AV综合合色蜜桃网 | 久久91精品国产91久久小草| 999久久久国产精品| 色偷偷888欧美精品久久久| 7国产欧美日韩综合天堂中文久久久久 | 久久国产精品一区二区| 久久人人爽人人爽人人片AV不 | 国内精品久久久久久不卡影院| 久久精品国产精品亚洲毛片| 精品综合久久久久久97| 久久久久久久女国产乱让韩| 无码精品久久一区二区三区| 国色天香久久久久久久小说| 亚洲伊人久久大香线蕉综合图片| 久久人人青草97香蕉| 亚洲综合伊人久久大杳蕉| 无码人妻精品一区二区三区久久| 婷婷伊人久久大香线蕉AV| 久久精品天天中文字幕人妻| 久久综合九色综合网站| 国产69精品久久久久777| 国产亚州精品女人久久久久久| 久久精品无码一区二区app| 2021国产精品午夜久久| 久久久久亚洲AV成人网| 亚洲国产成人久久综合一区77| 久久久久99精品成人片直播| 久久久久久九九99精品| 久久天天躁狠狠躁夜夜av浪潮 | 97久久超碰国产精品旧版| 久久99国产亚洲高清观看首页| 欧美亚洲国产精品久久蜜芽| 久久精品国产久精国产果冻传媒 | 亚洲va久久久噜噜噜久久 | 亚洲精品国产字幕久久不卡| 久久亚洲中文字幕精品有坂深雪| 国产精品久久永久免费| 亚洲av伊人久久综合密臀性色| 99久久无码一区人妻a黑|