C++版本的单链表的操作.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C版本的单链表的操作

#include iostreamusingnamespace std;//链表结点struct LinkNode{int val;LinkNode* next;LinkNode():next(NULL){}};//创建链表结点LinkNode*CreateLinkNode(int value){LinkNode* newNode =new LinkNode();if (newNode == NULL){return NULL;}newNode-val = value;newNode-next = NULL;return newNode;}//判断链表是否为空boolIsEmpty(LinkNode* list){return list-next == NULL;}//判断是否是最后一个结点boolIsLast(LinkNode* position){return position-next == NULL;}//在尾部插入结点voidInsertTailNode(LinkNode* list, LinkNode* newNode){if(list == NULL){list = newNode;}else{LinkNode* tmpNode = list;while(tmpNode-next != NULL){tmpNode = tmpNode-next;}tmpNode-next = newNode;//最后一个的下一个结点指向新结点}}//在链表中找到一个结点LinkNode*Find(int value, LinkNode* list){if (list == NULL){return NULL;}LinkNode* tmpNode = list-next;while(tmpNode!= NULL tmpNode-val != value){tmpNode = tmpNode-next;}return tmpNode;}//找到某一元素的前驱结点LinkNode*FindPrevious( int value, LinkNode* list){if (list == NULL){return;}LinkNode* tmpNode = list;while(tmpNode-next != NULL tmpNode-next-val != value){tmpNode = tmpNode-next;}return tmpNode;}//删除某个结点voidLinkNode(int value, LinkNode* list){if(list == NULL){return;}LinkNode* ToBeDelete = NULL;LinkNode* tmpNode = list;while(tmpNode-next != NULL tmpNode-next-val != value){tmpNode = tmpNode-next;}if(tmpNode-next != NULL){ToBeDelete = tmpNode-next;tmpNode-next = ToBeDelete-next;delete ToBeDelete;ToBeDelete = NULL;}return;}//将一个元素插入到知识的结点之后,元素的值为ValuevoidInsertNode(int value, LinkNode* list, LinkNode* pToBeInsertNode){if(list == NULL || pToBeInsertNode == NULL){return;}LinkNode* pNewNode = newListNode();if(pNewNode == NULL){return;}pNewNode-val = value;pNewNode-next = pToBeInsertNode-next;pToBeInsertNode-next = pNewNode;}//删除整个链表voidDelete(LinkNode* list){if(list == NULL){return;}LinkNode* pNode = list-next;LinkNode* tmpNode = NULL;while(pNode != NULL){tmpNode = pNode-next;delete pNode;pNode =tmpNode;}}//逆序打印链表voidprintListReversingly(LinkNode* list){stackLinkNode* nodes;LinkNode* tmpNode = list-next;while(tmpNode != NULL){nodes.push(tmpNode

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档