#include "iostream.h" #define MaxSize 100 typedef int DataType; class SeqList { DataType list[MaxSize]; int length; public: SeqList(){length=0;} void SLCreat(int n); void SLInsert(int i,DataType x); void SLDelete(int i); int GetLength(){return length;} int SLFind(DataType x); DataType SLGet(int i); int SLIsEmpty(); void SLPrint(); }; //創(chuàng)建順序表 void SeqList::SLCreat(int n) { DataType x; cout << "請(qǐng)輸入數(shù)據(jù)元素:"; for (int i=0;i<n;i++){ cin >>x; list[i]=x; length++; } } //在順序表L中的i位置插入數(shù)據(jù)元素x void SeqList::SLInsert(int i,DataType x) { int k; if (length>=MaxSize) cout<< "表已滿,無(wú)法插入!"<<endl; else if (i<0||i>length) cout <<"參數(shù)i不合理!" <<endl; else { for (k=length;k>i;k--) {list[k]=list[k-1];} list[i]=x; length++; } } //刪除第i個(gè)位置的數(shù)據(jù)元素 void SeqList::SLDelete(int i) { int k; if (!SLIsEmpty()) cout << "表已空,無(wú)法刪除!"<<endl; else if (i<0||i>length) cout << "參數(shù)i不合理!"<<endl; else { for (k=i-1;k<length;k++) list[k]=list[k+1]; length--; } } //查找數(shù)據(jù)元素x在表中的位置 int SeqList::SLFind(DataType x) { int i=0; while (i<length&&list[i]!=x) i++; if (i>=length) return -1; else return i+1; } //獲取第i個(gè)位置的元素的數(shù)值 DataType SeqList::SLGet(int i) { if (i<0||i>length) { cout<<"參數(shù)i不合理!"<<endl; return 0; } else return list[i-1]; } //判斷順序表是否為空 int SeqList::SLIsEmpty() { if (length<=0) return 0; else return 1; } //獎(jiǎng)順序表顯示在屏幕上 void SeqList::SLPrint() { if (!SLIsEmpty()) cout<<"空表!"<<endl; else for (int i=0;i<length;i++) cout<<list[i]<<" "; cout <<endl; } void main() { SeqList myList; int i,n,flag=1,select; DataType x; cout<<"1、建立順序表\n"; cout<<"2、求第i個(gè)位置上的數(shù)值\n"; cout<<"3、求x數(shù)值的位置:\n"; cout<<"4、在第i個(gè)位置插入數(shù)值元素x\n"; cout<<"5、刪除第i個(gè)位置上的數(shù)值\n"; cout<<"6、退出\n"; cout<<endl; while (flag) { cout<<"請(qǐng)選擇操作: "; cin>>select; switch(select) { case 1: cout<<"請(qǐng)輸入順序表的長(zhǎng)度: "; cin>>n; myList.SLCreat(n); cout<<"你所輸入的順序表為: "; myList.SLPrint(); break; case 2: cout<<"請(qǐng)輸入i的位置: "; cin>>i; cout<<"第"<<i<<"個(gè)位置上的數(shù)值為: "<<myList.SLGet(i)<<endl; break; case 3: cout<<"請(qǐng)輸入x的值: "; cin>>x; i=myList.SLFind(x); if(i!=-1) cout<<"x的位置為: "<<i<<endl; else cout<<"沒(méi)有找到!"; break; case 4: cout<<"請(qǐng)輸入要插入的元素的位置i和數(shù)值x: "; cin>>i>>x; myList.SLInsert(i,x); cout<<"插入后的順序表為: "; myList.SLPrint(); break; case 5: cout<<"請(qǐng)輸入要?jiǎng)h除的元素的位置: "; cin>>i; myList.SLDelete(i); cout<<"刪除后的順序表為: "; myList.SLPrint(); break; case 6: flag=0; break; } } }
運(yùn)行結(jié)果:
|
|
來(lái)自: 昵稱6308546 > 《我的圖書(shū)館》