• <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++ 閱讀(774) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構與算法
            无码精品久久一区二区三区| 久久九九有精品国产23百花影院| 久久青青草原精品影院| 久久亚洲精精品中文字幕| 国产高潮久久免费观看| 欧美久久精品一级c片片| 国产成人精品久久一区二区三区av| 一本一道久久精品综合| 亚洲αv久久久噜噜噜噜噜| 久久这里只有精品首页| 中文字幕无码精品亚洲资源网久久| 久久99热只有频精品8| 婷婷久久久亚洲欧洲日产国码AV| 人妻精品久久久久中文字幕69 | 久久久久久国产精品免费无码 | 久久精品国产2020| 99久久人妻无码精品系列| 久久精品国产一区二区电影| 伊人久久大香线蕉综合Av| 久久精品国产精品亜洲毛片| 亚洲AV无码久久寂寞少妇| 久久精品成人免费国产片小草| 亚洲AV日韩精品久久久久久| 日本加勒比久久精品| 国产精品久久久福利| 久久无码中文字幕东京热| 久久久久免费视频| 亚洲欧美精品伊人久久| 久久婷婷五月综合97色一本一本| 亚洲另类欧美综合久久图片区| 久久国产精品久久久| 久久精品国产亚洲AV无码偷窥| 亚洲精品99久久久久中文字幕| 91麻精品国产91久久久久| 久久婷婷五月综合97色 | www.久久热.com| 国内精品久久久久影院一蜜桃| 色婷婷综合久久久久中文一区二区 | 亚洲AV无码1区2区久久 | 一本大道久久东京热无码AV| 国产福利电影一区二区三区久久老子无码午夜伦不 |