第三周 --顺序表 的基本运算
来源:互联网 发布:拉爆淘宝首页流量 编辑:程序博客网 时间:2024/05/18 06:19
-
-
-
-
-
-
-
-
-
-
-
-
- #include<iostream>///共实现了顺序表的十个基本算法
- #include<stdlib.h>
- using namespace std;
- # define listinitsize 100
- typedef struct
- {
- int *elem;
- int length;
- int listsize;
- }sqlist;
- int initlist(sqlist &p)
- {
- p.elem=(int *)malloc(listinitsize*sizeof(int));
- if(!p.elem)
- return 0;
- p.length=0;
- p.listsize=listinitsize;
- return 1;
- }
- void creat(sqlist &p,int k)
- {
- int i;
- for(i=0;i<k;i++)
- {
- cin>>p.elem[i];
- p.length++;
- }
- }
- void display(sqlist &p)
- {
- int i=0;
- if(p.length==0)
- {
- cout<<"该顺序表为空"<<endl;
- return;
- }
- while(i!=p.length-1)
- {
- cout<<p.elem[i]<<' ';
- i++;
- }
- cout<<p.elem[i]<<endl;
- }
- int listempty(sqlist &p)
- {
- if(!p.length)
- return 1;
- else
- return 0;
- }
- void zhiweiempty(sqlist &p)
- {
- p.length=0;
- }
- int listlength(sqlist &p)
- {
- return p.length;
- }
- int getelem(sqlist &p,int q)
- {
- int i=1;
- while(i!=q)
- {
- i++;
- }
- if(i<p.length&&i==q)
- return p.elem[i-1];
- else
- return 0;
- }
- int donglist(sqlist &p,int f)
- {
- int i=0;
- while(p.elem[i]!=f&&i<p.length)
- {
- i++;
- }
- if(i<=p.length-1)
- return i+1;
- else
- return 0;
- }
- int insertlist(sqlist &p,int n,int m)
- {
- int i;
- if(n>p.length+1||n<1)
- return 0;
- for(i=p.length;i>=n;i--)
- {
- p.elem[i]=p.elem[i-1];
- }
- p.elem[n-1]=m;
- p.length++;
- return 0;
- }
- int deletelist(sqlist &p,int n)
- {
- int i;
- if(n<1||n>p.length)
- return 0;
- for(i=n-1;i<p.length-1;i++)
- {
- p.elem[i]=p.elem[i+1];
- }
- p.length--;
- return 0;
- }
- void destroylist(sqlist *&x)
- {
- free(x);
- cout<<"顺序表已被销毁"<<endl;
- }
- int main()
- {
- sqlist p,*x;
- x=&p;
- int k,s,h,z,g,c,e,w,u,r,b;
- cin>>k;
- initlist(p);
- creat(p,k);
- display(p);
- cin>>r;
- deletelist(p,r);
- display(p);
- cin>>u>>b;
- insertlist(p,u,b);
- display(p);
- cin>>c;
- g=getelem(p,c);
- cout<<g<<endl;
- cin>>e;
- w=donglist(p,e);
- cout<<w<<endl;
- z=listlength(p);
- cout<<z<<endl;
- s=listempty(p);
- cout<<s<<endl;
- zhiweiempty(p);
- h=listempty(p);
- cout<<h<<endl;
- display(p);
- destroylist(x);
- display(p);
- cout<<x->elem[5]<<endl;
- return 0;
- }
运行结果:
- uY3Nkbi5uZXQvTGZlbEw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">