c语言线性表源代码

c语言线性表源代码

ID:34707788

大小:53.29 KB

页数:12页

时间:2019-03-09

c语言线性表源代码_第1页
c语言线性表源代码_第2页
c语言线性表源代码_第3页
c语言线性表源代码_第4页
c语言线性表源代码_第5页
资源描述:

《c语言线性表源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C语言线性表-书序表#include#include#defineMAXLISTSIZE1024/*定义顺序表最大容量*/typedefstruct/*定义顺序表节点类型*/{intdata[MAXLISTSIZE];/*顺序表*/intlast;/*顺序表元素个数*/}linearlist;voidListList(linearlist*list)/*打印线性顺序表*/{inti;printf("当前线性表的状态:");if(list->last==0)/*

2、顺序表为空*/printf("当前顺序表为空");elsefor(i=0;i<(list->last);i++)/*循环遍历顺序表*/printf("[%4d]",list->data[i]);/*输出元素*/printf("");}voidOutput(linearlist*list)/*打印说明文档*/{system("cls");/*清屏*/printf("-顺序表-");/*输入功能菜单*/printf("-a:追加一个节点i:插入一个节点-");printf("-d:删除一个节点

3、e:退出-");ListList(list);/*打印线性顺序表*/}linearlist*CreateList()/*创建线性顺序表*/{linearlist*list=(linearlist*)malloc(sizeof(linearlist));/*分配空间*/list->last=0;/*初始化头节点值*/returnlist;/*返回初始化头节点指针*/}voidAppendNode(linearlist*list,intn)/*追加节点*/{if(list->last

4、IZE)/*顺序表不溢出*/{list->data[list->last]=n;/*初始化节点值*/list->last+=1;/*顺序表长度加1*/}}voidInsertNode(linearlist*list,intn,intpos)/*插入节点*/{intj;if(pos<0

5、

6、pos>list->last)printf("所插入的位置超出顺序表的范围");else{for(j=list->last;j>=pos;j--)/*逆向遍历顺序表*/list->data[j+1]=list->d

7、ata[j];/*元素后移*/list->data[pos]=n;/*指向节点赋值*/list->last++;/*顺序表长度加1*/}}voidDeleteNode(linearlist*list,intpos)/*删除节点*/{intj;if((pos<0)

8、

9、(pos>list->last))/*删除位置超出顺序表的范围*/printf("所要删除的位置超出顺序表的范围");else{for(j=pos;jlast;j++)/*遍历顺序表*/list->data[j]=list

10、->data[j+1];/*元素前移*/list->last--;/*顺序表长度减1*/}}intmain()/*主函数*/{intkey,pos;/*key元素值,pos下标*/charch;linearlist*list;list=CreateList();/*创建顺序表*/while(1){Output(list);printf("请选择:");ch=getchar();/*接受选项*/fflush(stdin);/*清除缓存*/if(ch=='a')/*追加*/{printf("请输入要追加的

11、数据:");scanf("%d",&key);AppendNode(list,key);}elseif(ch=='i')/*插入*/{printf("请输入要插入的数据的位置:");scanf("%d",&pos);printf("请输入要插入的数据:");scanf("%d",&key);InsertNode(list,key,pos);}elseif(ch=='d')/*删除*/{printf("请输入要删除的数据的位置:");scanf("%d",&pos);DeleteNode(list,po

12、s);}elseif(ch=='e')/*退出*/exit(0);Output(list);fflush(stdin);/*清除缓存*/}return0;}C语言线性表-单链表#include#includestructlinknode/*链表结构声明*/{intdata;/*存储结点数据*/structlinknode*next;/*指向下一个结点*/};typedefstructlinknodeLinkNode;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。