头插法和尾插法创建、删除、遍历单链表
2018-02-18 20:33
337 查看
单链表的创建方式:头插法和尾插法
声明单链表的数据结构
头插法:
头插法创建单链表算法
尾插法
尾插法创建单链表算法
遍历链表:
测试代码如下:
链表的删除
测试代码如下:
输出如下所示:
工程地址:
https://github.com/USuperMe/HeadAndTailInsertLinkList.git
欢迎关注公众号,不定期分享一些Unity3D、C#、C++ 数据结构和算法相关的学习知识:
声明单链表的数据结构
//*head表示头插法链表的头指针 //*LinkListHead表示头插法创建的链表 //tail表示尾插法链表的头指针 //*LinkListTail表示尾插法创建的链表 struct Node { int data; Node *next; } *head,*tail,*LinkListHead,*LinkListTail;
头插法:
头插法创建单链表算法
Node *CreateLinkListByHead(int n){ Node *p; LinkListHead=new Node; LinkListHead->next=NULL; head=LinkListHead; for(auto i=0;i<n;i++){ p=new Node; p->data=i; p->next=LinkListHead>next; LinkListHead->next=p; } cout<<"头插法创建的单链表" return head; }
尾插法
尾插法创建单链表算法
Node *CreateLinkListByTail(int n){ Node *p; LinkListTail=new Node; LinkListTail->next=NULL; tail=LinkListTail; Node *temp=LinkListTail; for(auto i=0;i<n;i++){ p=new Node; temp->next=p; temp=p; } temp->next=NULL; cout<<"尾插法创建的单链表"<<endl; return tail; }
遍历链表:
void ForeachLinkList(Node *head){ Node *p=head->next; while(p!=NULL){ cout<<p->data<<" "; p=p->next; } cout<<"\n"; }
测试代码如下:
int main(){ //头插法创建单链表 CreateLinkListByHead(10); //尾插法创建单链表 createLinkListByTail(10); //链表的遍历(头插法) ForeachLinkList(head); //链表的遍历(尾插法) ForeachLinkList(tail); }
链表的删除
void DeleteLinkList(Node *head){ Node *p=head->next; Node *temp; while(p){ temp=p->next; delete p; p=temp; } head->next=NULL; }
测试代码如下:
int main() { Node *LinkListHead = CreateLinkListByHead(10); ForeachLinkList(LinkListHead); Node *LinkListTail = CreateLinkListByTail(10); ForeachLinkList(LinkListTail); DeleteLinkList(LinkListHead); std::cout << "执行删除操作之后遍历链表" << std::endl; ForeachLinkList(LinkListHead); return 0; }
输出如下所示:
工程地址:
https://github.com/USuperMe/HeadAndTailInsertLinkList.git
欢迎关注公众号,不定期分享一些Unity3D、C#、C++ 数据结构和算法相关的学习知识:
相关文章推荐
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 数据结构:头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- c++实现单链表创建,删除,遍历,插入,修改操作
- (C语言)链表的创建、遍历、插入和删除
- 单循环链表的初始化、创建、删除、查找与遍历
- 单向链表的相关操作总结:创建、删除、查找、排序、统计链表大小、链表的反转和遍历等
- 数据结构:单链表(一)的创建、插入、删除、遍历,打印
- 数据结构学习二 数据结构之链表代码版【创建,遍历,删除,插入】
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- 数据结构学习二 数据结构之链表图解版【创建,遍历,删除,插入】
- 用结构体实现链表的创建、遍历、结点插入、结点删除、链表删除-----带菜单选项
- 详解链表的创建,插入,删除,遍历
- 头插法,尾插法,创建单链表,然后删除所有结点值为x的结点
- 单向链表的创建、遍历、求长、判存、判空、插入、删除、查找(按位置或元素)、合并
- 数据结构链表创建,遍历,是否为空,求长度,插入,删除算法的演示
- 链表的一系列操作(创建,插入,删除,从前到后,从后到前遍历整个链表)
- C语言 单向链表的创建、遍历、排序、删除操作
- 两种方法实现单向链表的创建、遍历、删除、查找、逆序输出(循环法和递归法)
- 单链表创建,遍历,插入,删除(固定个数)