资源描述:
《线性表 链式 储存结构 源代码 数据结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#defineOK1#defineTRUE1#defineERROR0#defineFALSE0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;//函数返回值定义typedefstructLNode{intelem;structLNode*next;}LNode,*LinkList;//结点的结构体定义#include"stdio.h"#include"stdlib.h"inti,e,counter=0;//常用的两个变量定义,i为数据位置,e为数据,counter为计数器voidmain(){//子函数定义Sta
2、tusInitList_L(LinkList&L);StatusInitElem_L(LinkList&L);StatusListInsert_L(LinkList&L,inti,inte);StatusListDelete_L(LinkList&L,inti,int&e);StatusPrintList_L(LinkListL);//开始初始化并运行//初始化数据并打印LinkListL;InitList_L(L);InitElem_L(L);PrintList_L(L);//插入数据并打印printf("请输入要插入的位置和数据:");scanf("%d%d",&i,
3、&e);ListInsert_L(L,i,e);PrintList_L(L);//删除数据,返回删除数据,并打印printf("请输入删除的位置:");scanf("%d",&i);ListDelete_L(L,i,e);printf("删除的数据是%d./n",e);PrintList_L(L);}//子函数StatusInitList_L(LinkList&L){L=(LinkList)malloc(sizeof(LNode));L->next=NULL;returnOK;}//InitList_LStatusInitElem_L(LinkList&L){printf
4、("请输入要创建元素的个数:");intn,m;scanf("%d",&n);LinkListp;printf("请输入随机数种子:");scanf("%d",&m);srand(m);while(counter!=n){if(counter==0){L->next=(LinkList)malloc(sizeof(LNode));p=L->next;p->elem=rand()%100+1;counter++;}else{p->next=(LinkList)malloc(sizeof(LNode));p=p->next;p->elem=rand()%100+1;count
5、er++;}}p->next=NULL;returnOK;}StatusListInsert_L(LinkList&L,inti,inte){LinkListp=L;intj=0;while(p&&jnext;j++;}//寻找第i-1个结点if(!p
6、
7、j>i-1)returnERROR;//i小于1或者大于表长加1LinkLists=(LinkList)malloc(sizeof(sizeof(LNode)));s->elem=e;s->next=p->next;p->next=s;returnOK;}StatusListDelete_L(Lin
8、kList&L,inti,int&e){LinkListp,q;p=L;intj=0;while(p->next&&jnext;j++;}if(!p->next
9、
10、j>i-1)returnERROR;q=p->next;p->next=q->next;e=q->elem;free(q);returnOK;}StatusPrintList_L(LinkListL){LinkListp;p=L->next;counter=0;while(p){if(counter%4==0)printf("");counter++;printf("第%3d个:%4d
11、",counter,p->elem);p=p->next;}printf("");returnOK;}