顺序结构(数组)线性表

来源:互联网 发布:成都gis软件培训班 编辑:程序博客网 时间:2024/06/06 17:38
#include <iostream>#define maxn 1000using namespace std;struct List{int data[maxn];int last;};List *MakeEmpty();int FindKth(int K,List *list);int Find(int X,List *list);void Insert(int X,int i,List *list);void Delete(int i,List *list);int Length(List *list);List *MakeEmpty(){List *list =(List*)malloc(sizeof(List));list->last=-1;return list;}int FindKth(int K,List *list){if(K<1||K>list->last){cout<<"不存在";}else{return list->data[K-1];}}int Find(int X,List *list){int i=0;while(i<=list->last&&list->data[i]!=X){++i;}if(i>list->last){return -1;}else{return i;}}void Insert(int X,int i,List *list){if(list->last==maxn-1){cout<<"表已满"; }if(i<1||i>list->last+2){cout<<"位置不合法";}else{for(int j=list->last;j>=i-1;--j){list->data[j+1]=list->data[j];}list->data[i-1]=X;list->last++;}}void Delete(int i,List *list){if(i<1||i>list->last+1){cout<<"位置不合法";return ; }else{for(int j=i;j<=list->last;++j){list->data[j-1]=list->data[j];}list->last--;}}int Length(List *list){return list->last+1;}void print(List *list){int i;for(i=0;i<=list->last;++i){cout<<list->data[i]<<' ';}}int main(){//初始化List* list = MakeEmpty();for(int i=0;i<10;++i){Insert(i,i+1,list);}list->last=9;//函数测试 int num=7;Insert(num,5,list);print(list);Delete(5,list);cout<<endl;print(list);return 0;} 

0 0
原创粉丝点击