数据结构之---顺序表

来源:互联网 发布:81端口是什么服务 编辑:程序博客网 时间:2024/06/15 12:09

源代码:

本代码仅仅显示了顺序表中基本的删除,显示等操作。其他相关操作可以进一步扩充。接下来是实现线性表中的链表结构。

#include#include#define MAXLINE 1000typedef struct{int list[MAXLINE];int size;}SeqList;void ListInit(SeqList *);//初始化顺序表int ListLength(SeqList L);//求顺序表元素个数int ListInert(SeqList*,int,int);//在顺序表第几个位置前插入元素void ListShow(SeqList L);//显示列表数据信息int ListDel(SeqList *,int ,int *);int main(int argc,char **argv){int i,x;SeqList L;ListInit(&L);for(i=0;i<10;i++)ListInsert(&L,i,i+1);ListShow(L);printf("删除第四个元素!\n");ListDel(&L,4,&x);ListShow(L);return 0;}int ListDel(SeqList *L,int i,int *x){int j;if(L->size==0){printf("顺序表空不能删除!\n");return -1;}if(i<0||i>L->size-1){printf("输入参数i非法!\n ");return -1;}*x=L->list[i];for(j=i;jsize;j++)L->list[j]=L->list[j+1];L->size-=1;return 0;}void ListShow(SeqList L){int len=L.size;int i;for(i=0;isize=0;//定义初始元素数据个数}int ListLength(SeqList L){return L.size;//直接返回个数}/* *插入元素x如果出错返回-1否则返回0 */int ListInsert(SeqList *L,int i,int x){int j;if(L->size>=MAXLINE){printf("顺序表个数已经满无法插入!\n");return -1;}if(i<0||i>L->size){printf("参数i非法\n");return -1;}for(j=L->size;j>i;j--)L->list[j]=L->list[j-1];L->list[i]=x;L->size+=1;return 1;}
运行结果:


0 0
原创粉丝点击