顺序表的所有基本操作
生活随笔
收集整理的這篇文章主要介紹了
顺序表的所有基本操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
####順序表的所有基本操作
#include<iostream> using namespace std ; #define MaxSize 25typedef int DataType;class SeqList //類 {DataType list[MaxSize] ; //int型數組 int length ; //數組長度 public : SeqList() { length = 0 ; } //返回順序表長度的gouzao函數 void SLCreat(int n ) ; //在順序表L中第i個位置插入元素x void SLDelete(int i) ; //在第i個位置刪除元素 void SLInsert(int i,DataType x);DataType SLSum() ; //求和void SLPrint() ; //打印 int SLIsEmpty() ; //判斷是否為空集 DataType SLGet (int i) ; } ;//創建順序表void SeqList::SLCreat(int n )//遍歷 一個一個往里塞 {DataType x ;cout << "請輸入數據元素值:" ;for ( int i = 0 ; i < n ; i++ ){cin >> x ;list[i] = x ;length++ ;} } //i位置插入數據元素x void SeqList::SLInsert(int i,DataType x) {int k ; if ( length >= MaxSize ) cout << "表已滿,無法插入" << endl ;else if ( i < 0 || i > length )cout << "參數i不合理!" << endl ;else{//從表末尾的數,遍歷到第i個數,依次向后挪一位;到第i個數時 i插入 for (k = length ; k > i ; k--) //<= 下面 i=i-1 去掉 {list[k] = list[k-1] ;}list[i] = list[i-1] ;list[i] = x ;length++ ; } } //刪除第i個位置的數據元素void SeqList::SLDelete(int i) //void在最前面 {int k ; if ( !SLIsEmpty() )cout << "表已空,無法刪除!" << endl ;else if ( i < 0 || i > length ) cout << "參數i不合理!" << endl ;else{//用第i+1個數,代替第i個數 依次向前挪一位 for ( k = i-1 ; k < length ; k++){list[k] = list[k+1] ; }length-- ;} } int SeqList::SLIsEmpty() {if(length<=0)return 1 ;else return 0 ; } void SeqList::SLPrint() {if ( !SLIsEmpty() ){cout << "空表!" << endl ; }else for ( int i = 0 ; i < length ; i++ ){cout << list[i] << ' ' ;}cout << endl ; } DataType SeqList::SLSum() {int m = 0 ; for ( int i = 0 ; i < length ; i++ ){m += list[i] ;}return m ;} //獲取第 i 個位置的元素的數值 DataType SeqList::SLGet (int i) //直接獲取 { if (i<0||i>length) { cout<<"參數 i 不合理!"<<endl; return 0; } else return list[i-1]; } int main() { SeqList mylist; int i,n,flag=1,select; DataType x; cout<<" 1.建立順序表\n"; cout<<" 2.求第 i 個位置上的數值\n"; cout<<" 3.在第 i 個位置前上插入數值元素 x\n"; cout<<" 4.刪除第 i 個位置上的數值\n"; cout<<" 5.該順序表上各元素之和\n"; cout<<" 6.輸出顯示\n"; cout<<" 7.退出\n"; cout<<"特別說明:第一次請選擇 1,以后就不要選擇 1 了!"<<endl; while(flag) { cout<<"請選擇: "; cin>>select; switch(select) { case 1: cout<<"請輸入順序表長度:"; cin>>n; mylist.SLCreat(n); cout<<"順序表為: "; mylist.SLPrint(); break; case 2: cout<<"請輸入位置 i: "; cin>>i; cout<<"第"<<i<<"個位置上的數值為: "<<mylist.SLGet (i)<<endl; break; case 3: cout<<"請輸入要插入元素的位置 i 和數值 x: "; cin>>i>>x; mylist.SLInsert (i,x); mylist.SLPrint (); break; case 4: cout<<"請輸入要刪除的數值的位置: "; cin>>i; mylist.SLDelete (i); cout<<"刪除后的順序表為: "; mylist.SLPrint (); break; case 5: cout<<"求和的值:"<<mylist.SLSum()<<endl; break; case 6: cout<<"順序表為: "; mylist.SLPrint (); break; case 7: flag=0; break; } } return 0; }總結
以上是生活随笔為你收集整理的顺序表的所有基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: E - Ignatius and the
- 下一篇: 顺序表的删除