链表试题算法探究.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1链表基本操作 typedef struct myLink { int data; struct myLink *next; }Link; //创建链表 包含头节点int creatLink(Link **phead) { int res = 0; int num; Link *ptm = (Link *)malloc(sizeof(Link)); ptm-data = 0; *phead = ptm; printf(请输入数据,以0结束!!!\n); scanf(%d, num); while (num != 0) { Link *pNew = (Link *)malloc(sizeof(Link)); if (pNew == NULL) { res = -1; printf(pNew==NULL 创建链表失败 error:%d\n,res); } pNew-data = num; ptm-next = pNew; ptm = pNew; printf(请输入数据,以0结束!!!\n); scanf(%d, num); } ptm-next = NULL; return res; } //打印链表 int printLink(Link *pHead) { int res = 0; Link *p = pHead-next; if (p == NULL) { res = -1; printf(printfLink() err:%d 链表为空打印失败\n,res); return res; } while (p != NULL) { printf(data=%d\n,p-data); p = p-next; } return res; } //插入链表在data=x的前面插入data=y; int insertLink(Link *pHead, int x, int y) { int res = 0; if (pHead == NULL) { res = -1; printf(pHead==NULL insertLink() err:%d\n,res); return res; } Link *pNew = (Link *)malloc(sizeof(Link)); pNew-data = y; Link *pPre = pHead; Link *pCurr = pHead-next; int flag = 0; while (pCurr != NULL) { if (pCurr-data == x) { flag = 1; break; } pPre = pPre-next; pCurr = pCurr-next; } if (flag == 0) { res = -2; printf(原链表中没有%d\n,x); return res; } pNew-next = pCurr; pPre-next = pNew; return res; } //删除链表中节点 删除data=x的节点 int deleLink(Link *pHead, int x) { int res = 0; if (pHead == NULL) { res = -1; printf(pHead==NULL deleLink() error:%d\n,res); return res; } Link *pPre = pHead; Link *pCurr = pHead-next; int flag = 0; while (pCurr != NULL) { if (pCurr-data == x) { flag = 1; break; } pPre = pPre-next; pCurr = pCurr-next; } if (flag == 0) { res = -2; printf(原链表中没有%d\n, x); return res; } pPre-next = pCurr-next; return res; } //反转链表 int revertLink(Link *pHead) { int res = 0; if (pHead == NULL||pHead-next==NULL||pHead-next-next==NULL) { res = -1; printf(pHead==NULL r

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档