顺序表基本操作在主函数中的实现
生活随笔
收集整理的這篇文章主要介紹了
顺序表基本操作在主函数中的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
using namespace std;typedef int Status;typedef struct
{int *elem;int length;
} SqList;
//構建空線性表
Status InistList(SqList &L)
{L.elem=new int [MAXSIZE];if(!L.elem)exit (OVERFLOW);L.length=0;return OK;
}
//輸入
Status CreatList(SqList &L,int n)
{for(int i=0; i<n; i++){cin>>L.elem[i];}L.length=n;return OK;
}
//取值
Status iGetNumber(SqList &L,int i,int &e)
{if(i<1||i>L.length){return ERROR;}e=L.elem[i-1];return OK;
}
//查找
int eLocateList(SqList &L,int e)
{for(int i=0; i<L.length; i++){if(L.elem[i]==e){return i+1;}}return 0;
}//插入
Status eInsertList(SqList &L,int i,int e)
{if(i<1||i>L.length+1){return ERROR;}if(L.length==MAXSIZE){return ERROR;}for(int j=L.length-1; j>=i-1; j--){L.elem[j+1]=L.elem[j];}L.elem[i-1]=e;++L.length;return OK;
}
//刪除
Status aDeleteList(SqList &L,int i)
{if(L.length==0){return ERROR;}if((i<1)||(i>L.length)){return ERROR;}for(int j=i; j<=L.length-1; j++){L.elem[j-1]=L.elem[j];}--L.length;return OK;
}
//輸出
void DisplayList(SqList &L)
{for(int i=0; i<L.length; i++){cout<<L.elem[i]<<" ";}
}
//歡迎
void WelcomeMenu()
{cout<<"1.初始化\n";cout<<"2.輸入\n";cout<<"3.取值\n";cout<<"4.查找\n";cout<<"5.插入\n";cout<<"6.刪除\n";cout<<"7.輸出\n";cout<<"0.退出\n";cout<<endl;
}
int main()
{SqList L;WelcomeMenu();bool a=true;while(a){int N;cout<<endl<<"請選擇:";cin>>N;switch(N){case 1:{if(InistList(L)){cout<<"成功初始化線性表";}else{cout<<"初始化線性表失敗";}break;}case 2:{int n;cout<<"請輸入元素個數:";cin>>n;cout<<"請輸入"<<n<<"個元素:";CreatList(L,n);cout<<"輸入完成";break;}case 3:{int i,e;cout<<"請輸入一個位置用來取值:";cin>>i;if(iGetNumber(L,i,e)){cout<<"取值成功,值為:";cout<<e;}break;}case 4:{int e;cout<<"請輸入所要查找的元素:";cin>>e;cout<<"查找成功,位置為:"<<eLocateList(L,e);break;}case 5:{int i,e;cout<<"請輸入插入位置:";cin>>i;cout<<"請輸入插入元素:";cin>>e;eInsertList(L,i,e);cout<<"插入成功!";break;}case 6:{int a;cout<<"請輸入所要刪除的元素:";cin>>a;aDeleteList(L,a);cout<<"刪除成功";break;}case 7:{cout<<"當前線性表為:";DisplayList(L);break;}case 0:{a=false;break;}}}return 0;
}
總結
以上是生活随笔為你收集整理的顺序表基本操作在主函数中的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何求解两个数的最大公约数
- 下一篇: 单链表基本操作在主函数中的实现