• <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();//創(chuàng)建表
             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<<"表創(chuàng)建完成,大小為"<<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<<"創(chuàng)建表A:"<<endl;
            169  SqList sqa;
            170  sqa.creat();
            171  cout<<"創(chuàng)建表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<<"輸入選項繼續(xù)操作:";
            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)  編輯 收藏 引用 所屬分類: 數據結構與算法
            91精品国产91久久久久久| 久久精品国产清高在天天线| 欧美亚洲日本久久精品| 久久国产精品视频| 久久人人爽人人爽人人av东京热| 久久午夜福利电影| 精品久久久久久亚洲精品| 精品视频久久久久| 日日噜噜夜夜狠狠久久丁香五月 | 亚洲精品国产字幕久久不卡 | 伊人久久大香线蕉成人| 99久久国产热无码精品免费 | 国产精品久久久久久五月尺| 国产一级持黄大片99久久| 伊人久久久AV老熟妇色| 婷婷久久综合九色综合绿巨人| 久久99精品久久只有精品| 久久精品综合网| 久久九九免费高清视频| 精品久久久无码中文字幕| 色偷偷888欧美精品久久久| 国产精品久久久久jk制服| 亚洲国产另类久久久精品| 国产精品中文久久久久久久| 久久99精品久久久久久秒播| 色综合久久久久综合99| 久久国产精品无| 色偷偷久久一区二区三区| 久久久久亚洲AV无码网站| 97久久超碰成人精品网站| 久久久久国产精品| 久久精品国产亚洲av麻豆蜜芽 | 2021最新久久久视精品爱| 久久久精品人妻一区二区三区蜜桃| 麻豆av久久av盛宴av| 国产午夜福利精品久久| 中文字幕久久久久人妻| 久久夜色精品国产www| 国产成人久久AV免费| 久久精品中文字幕一区| 国产香蕉97碰碰久久人人|