博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
list0307
阅读量:4107 次
发布时间:2019-05-25

本文共 3257 字,大约阅读时间需要 10 分钟。

#include 
#include
#include
typedef struct Node { int data; struct Node *next;}Node, *LinkList;int CreateListHead(LinkList *L, int n){ LinkList p; int i; srand(time(0)); (*L) = (LinkList)malloc(sizeof(Node)); if((*L) == NULL) { return -1; } (*L)->next = NULL; for(i = 0; i < n; i++) { p = (LinkList)malloc(sizeof(Node)); if(p == NULL) { return -1; } p->data = rand()%100 + 1; p->next = (*L)->next; (*L)->next = p; } return 0;}int CreateListTail(LinkList *L, int n){ LinkList p, r; int i; srand(time(0)); (*L) = (LinkList)malloc(sizeof(Node)); if((*L) == NULL) { return -1; } r = (*L); for(i = 0; i < n; i++) { p = (LinkList)malloc(sizeof(Node)); if(p == NULL) { return -1; } p->data = rand()%100 + 1; r->next = p; r = p; } r->next = NULL; return 0;}int ListInsert(LinkList *L, int i, int e){ LinkList p = *L, s; int j = 1; while(p && j < i) { p = p->next; ++j; } if(!p || j > i) { return -1; } s = (LinkList)malloc(sizeof(Node)); if(s == NULL) { return -1; } s->data = e; s->next = p->next; p->next = s; return 0;}int ListDel(LinkList *L, int i, int *e){ LinkList p = *L, q; int j = 1; while((p->next) && j < i) { p = p->next; ++j; } if(!p ||j > i) { return -1; } q = p->next; p->next = q->next; *e = q->data; free(q); return 0;}int DestoryList(LinkList *L){ LinkList q, p = (*L)->next; int i = 0; printf("\n"); while(p) { q = p->next; printf("[Destory list] Free %dth element %d.\n", ++i, p->data); free(p); p = q; } return 0;}void PrintList(LinkList L){ LinkList p = L->next; int i = 0; while(p) { printf("[Print list] %dth element %d. \n",++i, p->data); p = p->next; }}int TestCaseForList(LinkList *L, int size, int flag){ int ret; if (flag == 0) { printf("[Test case for list] falg == 0.\n"); ret = CreateListTail(L, size); if(ret == 0) { printf("[Test case for list] sucess.\n\n"); } else { return -1; } } else { printf("[Test case for list] falg == 1.\n"); ret = CreateListHead(L, size); if(ret == 0) { printf("[Test case for list] sucess.\n"); } else { return -1; } } PrintList(*L); ret = ListInsert(L, 1, 25000); if(ret == -1) { return -1; } printf("\n[Test case for list] Insert after.\n"); PrintList(*L); int val = 0; ret = ListDel(L, 1, &val); if(ret == -1) { return -1; } printf("\n[Test case for list] Del element %d.\n", val); PrintList(*L); ret = DestoryList(L); if(ret != 0) { return -1; } return 0;}int main(void){ LinkList *L; int size = 10, flag = 1; int ret = TestCaseForList(L, size, flag); if(ret == -1) { printf("[Main] failed.\n"); return -1; } return 0; }

《大话数据结构》 程杰

转载地址:http://tfvsi.baihongyu.com/

你可能感兴趣的文章
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day12 集合
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
Day_15JavaSE 异常
查看>>
异常 Java学习Day_15
查看>>
JavaSE_day_03 方法
查看>>
day-03JavaSE_循环
查看>>