码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 王道数据结构——循环双链表(双向循环链表)


    参考题目:​​​​​​2019软专算法题T1(链表模板)_UncleJokerly的博客-CSDN博客

    代码如下:

    1. #include
    2. #include
    3. typedef struct node
    4. {
    5. int data;
    6. struct node *left;
    7. struct node *right;
    8. }Node,*LinkList;
    9. void InitList(LinkList &L)//初始化双向循环链表
    10. {
    11. L=(Node*)malloc(sizeof(Node));
    12. L->left=L;
    13. L->right=L;
    14. }
    15. //void TailInsertList(LinkList &L)//双向循环链表尾插
    16. //{
    17. // Node *p=L;
    18. // int a[7]={1,2,3,4,5,6,7};
    19. // for(int i=0;i<7;i++)
    20. // {
    21. // Node *q=(Node*)malloc(sizeof(Node));
    22. // q->data=a[i];
    23. //
    24. // q->right=p->right;
    25. // q->left=p;
    26. // p->right=q;
    27. // //p->left=q;不要加
    28. // p=q;
    29. // }
    30. // L->left=p;
    31. //}
    32. void TailInsertList(LinkList &L,int a[],int len)//双向循环链表尾插
    33. {
    34. Node *p=L;
    35. for(int i=0;i
    36. {
    37. Node *q=(Node*)malloc(sizeof(Node));
    38. q->data=a[i];
    39. q->right=p->right;
    40. q->left=p;
    41. p->right=q;
    42. //p->left=q;不要加
    43. p=q;
    44. }
    45. L->left=p;
    46. }
    47. void HeadInsertList(LinkList &L,int a[],int len)//双向循环链表头插
    48. {
    49. Node *p;
    50. for(int i=0;i
    51. {
    52. Node *q=(Node*)malloc(sizeof(Node));
    53. q->data=a[i];
    54. q->right=L->right;
    55. q->left=L;
    56. L->right=q;
    57. if(i==0)
    58. {
    59. p=q;
    60. }
    61. }
    62. L->left=p;
    63. }
    64. void PrintList(LinkList L)//遍历输出双向循环链表
    65. {
    66. printf("双向循环链表的序列为:\n");
    67. Node *p=L->right;
    68. while(p!=L)
    69. {
    70. printf("%d ",p->data);
    71. p=p->right;
    72. }
    73. printf("\n");
    74. }
    75. void zhaiList(LinkList L,LinkList &L1,LinkList &L2)//把L中的奇数摘出来保存到L1,把L中的偶数摘出来保存到L2
    76. {
    77. int index=1;
    78. Node *p=L->right;
    79. int a[100],b[100];
    80. int cnt1=0,cnt2=0;
    81. while(p!=L)
    82. {
    83. Node *q=(Node*)malloc(sizeof(Node));
    84. if(index%2==1)//是奇数,建立a数组
    85. {
    86. a[cnt1++]=p->data;
    87. }
    88. else if(index%2==0)//是偶数,建立b数组
    89. {
    90. b[cnt2++]=p->data;
    91. }
    92. index++;
    93. p=p->right;
    94. }
    95. TailInsertList(L1,a,cnt1);
    96. HeadInsertList(L2,b,cnt2);
    97. }
    98. void MergeList(LinkList &L1,LinkList &L2)//L2接到L1的后面
    99. {
    100. L1->left->right=L2->right;
    101. L2->right->left=L1->left;
    102. L2->left->right=L1;
    103. L1->left=L2->left;
    104. }
    105. int main()
    106. {
    107. LinkList L;
    108. InitList(L);
    109. LinkList L1;
    110. InitList(L1);
    111. LinkList L2;
    112. InitList(L2);
    113. LinkList L3;
    114. InitList(L3);
    115. int a[7]={1,2,3,4,5,6,7};
    116. TailInsertList(L,a,7);
    117. PrintList(L);
    118. zhaiList(L,L1,L2);
    119. PrintList(L1);
    120. PrintList(L2);
    121. MergeList(L1,L2);
    122. PrintList(L1);
    123. return 0;
    124. }

  • 相关阅读:
    Proximal Policy Optimization Algorithms
    最全面的创建线程的几种方式总结,让你的需求轻松选择最合适你的线程创建方式
    程序员想要网上接单却不知道如何是好?那这篇文章你可得收藏好了!
    OBS键盘插件自定义diy
    基于STM32+华为云设计的智能鱼缸
    考研数据结构大题整合_组一(ZYL组)_做题版
    【文末送书】Kali Linux与网络安全
    Qt --- Day03
    基于C语言的泛类型循环队列
    java毕业生设计悦途旅游网计算机源码+系统+mysql+调试部署+lw
  • 原文地址:https://blog.csdn.net/UncleJokerly/article/details/126179639
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号