数据结构1-静态顺序表的实例与分析

来源:互联网 发布:js中对日期格式化 编辑:程序博客网 时间:2024/05/05 13:27

实例说明:创建一个静态的顺序表存放整数,并可以完成插入和删除操作,代码如下:

#include"stdio.h"#define MaxSize 10/*静态顺序表的各种操作*//** 向顺序表中插入元素 *//** 参数Sqlist:表首地址 *//** 参数*len:表的长度 *//** 参数i:插入元素的位置 *//** 参数x:待插入的元素值 */void insertElem(int Sqlist[],int *len,int i,int x){int t;if(*len==MaxSize || i<1 || i>*len+1){printf("This insert is illegal\n");return;}for(t=*len-1;t>=i-1;t--)Sqlist[t+1]=Sqlist[t];Sqlist[i-1]=x;*len=*len+1;}/** 向顺序表中删除元素 *//** 参数Sqlist:表首地址 *//** 参数*len:表的长度 *//** 参数i:插入元素的位置 */void DelElem(int Sqlist[],int *len,int i){int j;if(i<1 || i>len){printf("This insert is illegal");return;}for(j=i;j<=*len-1;j++){Sqlist[j-1]=Sqlist[j];}*len=*len-1;}main(){int Sqlist[MaxSize];int len;int i;for(i=0;i<6;i++){scanf("%d",&Sqlist[i]);}len=6;for(i=0;i<len;i++){printf("%d",Sqlist[i]);}printf("\nThe spare length is %d\n",MaxSize-len);insertElem(Sqlist,&len,3,0);for(i=0;i<len;i++)printf("%d",Sqlist[i]);printf("\nThe spare length is %d\n",MaxSize-len);insertElem(Sqlist,&len,11,0);DelElem(Sqlist,&len,6);for(i=0;i<len;i++)printf("%d",Sqlist[i]);printf("\nThe spare length is %d\n",MaxSize-len);system("pause");return(0);}

测试的结果如下:

实例的说明:

       1.函数中的*len不能替换成len,由于替换成len之后就变成局部变量,main函数运行时无法传递真正的len值,只有传地址的时候才可以把插入和删除操作的真正len值传递过来。

       2.system("psuse");return(0);的作用:由于从Visual Studio 2010开始,控制台程序的结尾处取消了console,导致一运行控制台结束就关闭控制台(我们看到的结果就是一闪而逝),在网上找了好多方法,发现就这种方式好用,所以特意在这里说明!(注:用Visual Studio 2010以下版本就不需要加这两条语句)

0 0
原创粉丝点击