循环双链表的简单操作
来源:互联网 发布:互联港湾 知乎 编辑:程序博客网 时间:2024/05/21 15:25
<span style="font-size:18px;">下面是循环双链表的简单操作,其中很多细节没有考虑到,比如没有判断空链表,目的提供思想,如有出现错误,请大家指正!</span>
#include<iostream>//#include<stdlib.h>using namespace std;struct List { int data; struct List *last, *next;};List *CreateList() { List *first; first = new List; //first = (List *)malloc(sizeof(List)); first->next = first; first->last = first; return first;}List *InitialList(List *first) { List *p, *head; head = first; for (int i = 0; i < 5; i++) { p = new List; p->data = i; p->last = head; head->next = p; head = p; } first->last = head; head->next = first; return first;} void PrintList(List *first){ List *q = first; first = first->next; cout << "正序打印:"; for (; first != q; first = first->next) { cout << first->data << " "; } cout << endl; List *p = first; first = first->last; cout << "逆序打印:"; for (; first != p; first = first->last) { cout << first->data << " "; } } void InsertList(List *first,int i,int x) { List *head, *p; head = first; for (int j = 0; j < i - 1; j++) { head = head->next; } p = new List; p->data = x; p->last = head; p->next = head->next; //P head->next->last = p; head->next = p; //该过程操作有顺序,该步一定要在P之后,否则会覆盖head ->next } void DeleteList(List *first, int i) { List *head, *p; head = first; for (int j = 0; j < i; j++) { head = head->next; } p = head; head->last->next = head->next; //由于是循环双链表,可以直接以删除点为中心操作 head->next->last = head->last; delete p; p = NULL; first = first->next; for (; !first; first = first->next) { cout << first->data << " "; } } void DestoryList(List *first){ List *p, *head; head = first; while(head !=first){ p = head; head = head ->next; delete p; } delete first; //一定要销毁头指针 first = NULL; //为了防止出现迷途指针,将头结点置空 cout << "链表已经销毁" << endl; exit(0); } int main() { List *s,*t; s = CreateList(); t = InitialList(s); DestoryList(t); //InsertList(t, 3, 11); //DeleteList(t,4); PrintList(t); }
0 0
- 循环双链表的简单操作
- 简单的数组循环操作
- 简单的for循环操作及一些操作
- 循环双链表的简单实现
- 循环双链表的简单实现
- java简单的循环操作--打印一个菱形
- 带表 双向循环链表的简单操作
- mysql 存储过程一个简单的循环遍历操作数据
- 简单基础操作,字符串操作,循环等
- 双链表的简单操作
- 双链表、循环链表的算法操作
- 循环双链表的基本操作实现
- 循环双链表的基本操作实现
- 两个简单的循环
- 简单的while循环
- 简单的循环语句
- 循环的简单认识
- 简单的for循环
- 014-预处理指令-C语言笔记
- struts2+easyui实现根据条件检索信息
- Unity项目开发准则(转)
- Shell脚本实现超简洁的在Linux服务器上安装nginx、resin、java、tomcat、redis等程序
- easyui实现datagrid行内编辑
- 循环双链表的简单操作
- install pyspider
- C语言小练习之学生信息管理系统
- unity警告“Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded, doin”
- Android计时器和倒计时
- java并发(三十四)协程kilim
- Spring Security 4.0 CAS实现单点登录
- 透过HT for Web 3D看动画Easing函数本质
- 买Book还是Pro 4?两款Surface新品规格比较(组图)