博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表类型题目需要用到的头文件list.h
阅读量:4185 次
发布时间:2019-05-26

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

下面是后面链表相关题目中需要用到的链表结点的定义和相关操作函数,参见下面的list.h文件:

注意链表结点的定义采用cpp的定义方式,它会被cpp的文件调用。比如后面删除链表重复结点的文件del_repeated_list.cpp中的编译方式:

g++ -g del_repeated_list.cpp -o del_repeated_list

#include 
#include
struct ListNode{ int value; ListNode* next;};ListNode* CreateListNode(int value){ ListNode* pNode = new ListNode(); pNode->value = value; pNode->next = NULL; return pNode;}void ConnectListNode(ListNode* pCurrent, ListNode* pNext){ if(pCurrent == NULL){ printf("Error to connect two nodes.\n"); exit(1); } pCurrent->next = pNext;}void PrintListNode(ListNode* pNode){ if(pNode == NULL) printf("The node is null.\n"); else printf("The key in node is %d.\n", pNode->value);}void PrintList(ListNode* pHead){ ListNode* pNode = pHead; while(pNode){ printf("%d\t", pNode->value); pNode = pNode->next; } printf("\n");}void DestroyList(ListNode* pHead){ ListNode* pNode = pHead; while(pNode){ ListNode* pNext = pNode->next; delete pNode; pNode = pNext; }}void AddToTail(ListNode** pHead, int value){ ListNode* pNode = new ListNode(); pNode->value = value; pNode->next = NULL; if(*pHead == NULL) *pHead = pNode; else{ ListNode* pCurrent = *pHead; while(pCurrent->next) pCurrent = pCurrent->next; pCurrent->next = pNode; }}void RemoveHead(ListNode** pHead, int value){ if(pHead == NULL || *pHead == NULL) return; ListNode* pToBeDeleted = NULL; if((*pHead)->value == value){ pToBeDeleted = *pHead; *pHead = (*pHead)->next; }else{ ListNode* pNode = *pHead; while(pNode->next != NULL && pNode->next->value != value) pNode = pNode->next; if(pNode->next != NULL && pNode->next->value == value){ pToBeDeleted = pNode->next; pNode->next = pNode->next->next; } } if(pToBeDeleted != NULL){ delete pToBeDeleted; pToBeDeleted = NULL; }}

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

你可能感兴趣的文章
事务与锁(转)
查看>>
Namenode HA原理详解(脑裂)
查看>>
Differences between VMware FT and HA(转)
查看>>
Cloud Prizefight: OpenStack vs. VMware(转)
查看>>
亚马逊Auto Scaling
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>
Openstack Heat Project介绍(转)
查看>>
How to Perform an Upgrade from Icehouse to Juno(ice升级到juno)
查看>>
高扩展性网站的50条原则(转)-思维导图
查看>>
解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists
查看>>
构建OpenStack的云基础架构:ManageIQ(转)
查看>>
云管理软件 ManageIQ(转)
查看>>
CentOS 7.0,启用iptables防火墙(转)
查看>>
svn忽略ignore文件记住方式(转)
查看>>
web缓存相关知识(转)
查看>>
Understanding Spring MVC Model and Session Attributes
查看>>
Spring MVC中Session的正确用法之我见(转)
查看>>