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

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

ID:38120939

大小:21.46 KB

页数:6页

时间:2019-06-06

C++版本的单链表的操作_第1页
C++版本的单链表的操作_第2页
C++版本的单链表的操作_第3页
C++版本的单链表的操作_第4页
C++版本的单链表的操作_第5页
资源描述:

《C++版本的单链表的操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#includeusingnamespacestd;//链表结点structLinkNode{intval;LinkNode*next;LinkNode():next(NULL){}};//创建链表结点LinkNode*CreateLinkNode(intvalue){LinkNode*newNode=newLinkNode();if(newNode==NULL){returnNULL;}newNode->val=value;newNode->next=NULL;returnnewNode;}

2、//判断链表是否为空boolIsEmpty(LinkNode*list){returnlist->next==NULL;}//判断是否是最后一个结点boolIsLast(LinkNode*position){returnposition->next==NULL;}//在尾部插入结点voidInsertTailNode(LinkNode*list,LinkNode*newNode){if(list==NULL){list=newNode;}else{LinkNode*tmpNode=list;while(tmpNo

3、de->next!=NULL){tmpNode=tmpNode->next;}tmpNode->next=newNode;//最后一个的下一个结点指向新结点}}//在链表中找到一个结点LinkNode*Find(intvalue,LinkNode*list){if(list==NULL){returnNULL;}LinkNode*tmpNode=list->next;while(tmpNode!=NULL&&tmpNode->val!=value){tmpNode=tmpNode->next;}returntmp

4、Node;}//找到某一元素的前驱结点LinkNode*FindPrevious(intvalue,LinkNode*list){if(list==NULL){return;}LinkNode*tmpNode=list;while(tmpNode->next!=NULL&&tmpNode->next->val!=value){tmpNode=tmpNode->next;}returntmpNode;}//删除某个结点voidLinkNode(intvalue,LinkNode*list){if(list==NUL

5、L){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;deleteToBeDelete;ToBeDelete=NULL;}return;}//

6、将一个元素插入到知识的结点之后,元素的值为ValuevoidInsertNode(intvalue,LinkNode*list,LinkNode*pToBeInsertNode){if(list==NULL

7、

8、pToBeInsertNode==NULL){return;}LinkNode*pNewNode=newListNode();if(pNewNode==NULL){return;}pNewNode->val=value;pNewNode->next=pToBeInsertNode->next;pToBeIn

9、sertNode->next=pNewNode;}//删除整个链表voidDelete(LinkNode*list){if(list==NULL){return;}LinkNode*pNode=list->next;LinkNode*tmpNode=NULL;while(pNode!=NULL){tmpNode=pNode->next;deletepNode;pNode=tmpNode;}}//逆序打印链表voidprintListReversingly(LinkNode*list){stack

10、*>nodes;LinkNode*tmpNode=list->next;while(tmpNode!=NULL){nodes.push(tmpNode);tmpNode=tmpNode->next;}while(!node.empty()){LinkNode*tmpNode=node.top();cout<val<<"";nodes.pop();}}/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。