简单的单链表
2017-02-05 15:18
225 查看
下面介绍一下单链表,给出了链表元素的插入,删除,显示函数,并且给出明确注释。
这里给出的是头插法,也就是始终在链表的头部插入和删除元素,但插入顺序和输出顺序是相反的,也可以使用尾插法,找到链表的最后一个元素,为提升效率,常用一个指针指向最后一个元素。
#include<iostream> #include<Windows.h> using namespace std; struct Node { int data;//数据域 Node *next;//指针域 }; void PushElement(Node *RootNode,int data); void PopElement(Node *RootNode); void DisplyElement(Node *RootNode); int main() { Node *RootNode=new Node;//创建根节点 RootNode->next = NULL; //根节点的指针域初始值为NULL RootNode->data = 0;//根节点数据域为链表大小 PushElement(RootNode, 1);//向链表中压入元素 PushElement(RootNode, 2); PushElement(RootNode, 3); PushElement(RootNode, 4); PushElement(RootNode, 5); PushElement(RootNode, 6); PushElement(RootNode, 7); DisplyElement(RootNode);//显示整个链表 system("pause"); return 0; } void PushElement(Node *RootNode, int data) { Node *NewNode = new Node;//创建新的节点 if (RootNode == NULL)//链表为空时 { RootNode->next = NewNode; NewNode->data = data; } else//链表不为空 { NewNode->next = RootNode->next; RootNode->next = NewNode; NewNode->data = data; } RootNode->data++; } void DisplyElement(Node *RootNode) { Node *p = RootNode->next; cout << "共" << RootNode->data << "个元素:"; while (p != NULL) { cout << p->data<<" "; p = p->next;//指向下一个元素 } } void PopElement(Node *RootNode) { if (RootNode->next == NULL)//链表为空,不再弹出 { return; } RootNode->data--; Node *Element2Del = RootNode->next; RootNode->next = Element2Del->next; delete Element2Del; }
这里给出的是头插法,也就是始终在链表的头部插入和删除元素,但插入顺序和输出顺序是相反的,也可以使用尾插法,找到链表的最后一个元素,为提升效率,常用一个指针指向最后一个元素。
相关文章推荐
- 【NOI2013】树的计数
- 数字签名详解与例子
- DOM、BOM操作集合-DOM基本操作思维导图与window对象思维导图
- USACO1.3 修理牛棚 Barn Repair
- Create Phone Number
- 读读MaNGOS系列之总览
- 立Flag!!
- MFC:调用Invalidate()的作用
- c#连接oracle配置文件
- css溢出加滚动条
- C#微信开发之获取接口调用凭据
- 定义宏
- SQL查询语句关键字方法
- 先锋机器人学习笔记_1-3 2d 建模和 Mapper 地图编辑器
- CENTOS: Docker的Tomcat容器里的reboot
- spring maven 搭建dubbo框架 服务端
- [Android开发] EventBus3 使用方法教程总结
- Android Studio Gradle打包实践之多渠道+版本号管理
- 3 Kafka两个版本在Zookeeper的元数据存储
- 常用SQL查询语句