博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
双向链表的实现
阅读量:4691 次
发布时间:2019-06-09

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

  由于一直对链表不太熟,所以今天晚上就趁着没什么事,写个双向链表玩玩。

1 #include
2 using namespace std; 3 struct Node 4 { 5 int Num=0; 6 Node *Next=nullptr; 7 Node *Pre=nullptr; 8 }; 9 10 int main()11 {12 Node *head, *current, *pre=nullptr;13 int count = 2;14 //为什么一开始就给head分配内存,而不是像单向链表那样由current将内存分配给head呢?15 //原因是如果一开始没有给head分配内存,那么在实现双向链表最关键的一步----head->next=current,current=head,这一步上就会出错16 //因为一开始head是没有分配内存给他的,所以将current的内存给了head,而current本身只能和head共享一块内存了,这样就不能实现双向性了17 18 head = new Node;19 head->Num = count - 1;20 while (count <= 10)21 {22 current = new Node;23 if (head->Next == nullptr)24 {25 head->Next = current;26 current->Pre = head;27 current->Num = count;28 }29 else30 {31 pre->Next = current;32 current->Pre = pre;33 current->Num = count;34 }35 pre = current;36 current = current->Next;37 ++count;38 }39 //正序输出40 current = head;41 while (current->Next != nullptr)42 {43 cout << current->Num << " ";44 current = current->Next;45 }46 cout << current->Num;47 cout << endl;48 //逆序输出49 current = current;50 while (current != nullptr)51 {52 cout << current->Num << " ";53 current = current->Pre;54 }55 56 57 58 59 60 system("pause");61 return 0;62 }

 

转载于:https://www.cnblogs.com/nkuhjp/p/5402869.html

你可能感兴趣的文章
安装virtualbox须知
查看>>
mui集成百度ECharts的统计图表以及清空释放图表
查看>>
Duplicate entry '' for key 'PRIMARY'
查看>>
传奇脚本中 SendMsg 编号说明
查看>>
Javascript 严格模式详解
查看>>
普林斯顿算法课Part2第四周作业_Boggle
查看>>
AspNetPager分页控件的使用以及常见错误
查看>>
(博弈) bzoj 2460
查看>>
常用类的课后作业
查看>>
JAVA的动态代理
查看>>
立体图
查看>>
【收藏】纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)...
查看>>
动态为表添加字段
查看>>
Linux下修改Mysql密码的三种方式
查看>>
17级单片机期中测试题目
查看>>
JS 只能输入数字和两位小数的JS
查看>>
(转)java位运算
查看>>
浅析Symbol
查看>>
【狼窝乀野狼】Serializer妙手回春
查看>>
六张图教你交易美国5月非农数据
查看>>