数据结构试验——线性表
数据结构试验——线性表程序代码:
# include<iostream> using namespace std; #define Maxlen 100 typedef int ElemType; typedef struct{ ElemType data[Maxlen]; int length; }sqlist; /*初始化顺序表*/ void initlist(sqlist *L) { L->length=0; cout<<"初始化成功!\n"; } /*顺序表的插入算法*/ void Inselem(sqlist *L,int i,ElemType x) { if(i<1 || i>L->length+1) { cout<<"error!"; exit(1); } if(L->length==Maxlen) { cout<<"overflow!"; exit(1); } for(int j=L->length-1;j>=i-1;j--) L->data[j+1]=L->data[j]; L->data[i-1]=x; L->length++; } /*求线性表长度*/ int Getlen(sqlist *L) { return L->length; } /*按序号取元素*/ ElemType Getelem(sqlist *L,int i) { if(i<1 || i>L->length) { cout<<"error"; exit(1); } return L->data[i-1]; } /*显示函数*/ void display(sqlist *L) { int i=0; while(i<=Getlen(L)-1) { cout<<L->data[i]<<' '; i++; } cout<<endl; } /*查找运算的实现*/ int Locate(sqlist *L,ElemType x) { int i; i=0; while(i<L->length && L->data[i]!=x) i++; if(i<L->length) return i+1; else return 0; } /*删除运算*/ void Delelem(sqlist *L,int i) { if(i<1 || i>L->length) { cout<<"不存在第i个元素"; exit(0); } for(int j=i;j<=L->length;j++) L->data[j-1]=L->data[j]; L->length--; cout<<"成功删除此元素!\n"; } int main() { ElemType c,d; int len,n; sqlist l; initlist(&l); cout<<"请输入要输入元素的个数:"; cin>>len; for(int i=1;i<=len;i++) { cout<<"请输入要插入元素的序号和元素:"; cin>>n>>c; Inselem(&l,n,c); } cout<<"线性表的元素为:"; display(&l); cout<<"线性表的长度为:"<<Getlen(&l); cout<<"\n请输入要取的元素的序号:"; cin>>n; cout<<"此元素为:"<<Getelem(&l,n); cout<<endl; cout<<"请输入要查找的元素:"; cin>>d; cout<<"您所要查找的元素的序号为:"<<Locate(&l,d); cout<<"\n请输入您要删除元素的序号:"; cin>>n; Delelem(&l,n); return 0; }