欢迎来到天天文库
浏览记录
ID:50824627
大小:36.33 KB
页数:12页
时间:2020-03-15
《C语言线性表源代码.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言线性表-书序表#include#include#defineMAXLISTSIZE1024/*定义顺序表最大容量*/typedefstruct/*定义顺序表节点类型*/{intdata[MAXLISTSIZE];/*顺序表*/intlast;/*顺序表元素个数*/}linearlist;voidListList(linearlist*list)/*打印线性顺序表*/{inti;printf("当前线性表的状态:");if(list->last==0)/*顺序表为空*/printf("当前顺序表为空");elsefor(i=
2、0;i<(list->last);i++)/*循环遍历顺序表*/printf("[%4d]",list->data[i]);/*输出元素*/printf("");}voidOutput(linearlist*list)/*打印说明文档*/{system("cls");/*清屏*/printf("-顺序表-");/*输入功能菜单*/printf("-a:追加一个节点i:插入一个节点-");printf("-d:删除一个节点e:退出-");ListList(list);/*打印线性顺序表*/}linearlist*CreateList()/*创建线性顺序表*
3、/{linearlist*list=(linearlist*)malloc(sizeof(linearlist));/*分配空间*/list->last=0;/*初始化头节点值*/returnlist;/*返回初始化头节点指针*/}voidAppendNode(linearlist*list,intn)/*追加节点*/{if(list->lastdata[list->last]=n;/*初始化节点值*/list->last+=1;/*顺序表长度加1*/}}voidInsertNode(linearlist*li
4、st,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->data[j];/*元素后移*/list->data[pos]=n;/*指向节点赋值*/list->last++;/*顺序表长度加1*/}}voidDeleteNode(linearlist*list,intpos)/*删除节点*/{intj;if((pos<0)
7、
8、(pos>li
9、st->last))/*删除位置超出顺序表的范围*/printf("所要删除的位置超出顺序表的范围");else{for(j=pos;jlast;j++)/*遍历顺序表*/list->data[j]=list->data[j+1];/*元素前移*/list->last--;/*顺序表长度减1*/}}intmain()/*主函数*/{intkey,pos;/*key元素值,pos下标*/charch;linearlist*list;list=CreateList();/*创建顺序表*/while(1){Output(list);printf("请选择:"
10、);ch=getchar();/*接受选项*/fflush(stdin);/*清除缓存*/if(ch=='a')/*追加*/{printf("请输入要追加的数据:");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("请输入要删除的数
11、据的位置:");scanf("%d",&pos);DeleteNode(list,pos);}elseif(ch=='e')/*退出*/exit(0);Output(list);fflush(stdin);/*清除缓存*/}return0;}C语言线性表-单链表#include#includestructlinknode/*链表结构声明*/{intdata;/*存储结点数据*/structlinknode*next;/*指向下一个结点*/};typedefstructlinknodeLinkNode;
此文档下载收益归作者所有