1. 首页
  2. IT资讯

循环双链表的创建初始化

前面对单链表进行了简单的操作,下面是循环双链表的创建初始化:

点击(此处)折叠或打印

  1. #include<iostream>
  2. //#include<stdlib.h>
  3. using namespace std;
  4. struct List {
  5. int data;
  6. struct List *last, *next;
  7. };
  8. List *CreateList() {
  9. List *first;
  10. first = new List; //first = (List *)malloc(sizeof(List));
  11. //上面向系统申请一块内存时,C++通过直接new,释放内存用delete。而C是通过malloc()来实现,释放内存用free().为了方便下文都是用new,也是为前两篇文章做个说明。
  12.  first>next = first;
  13.  first>last = first;
  14. return first;
  15. //该函数作用是创建了一个空结点,可以直接对其赋空值 first >data = NULL;
  16. }
  17. List *InitialList(List *first) {
  18. List *p, *head;
  19. head = first;
  20. for (int i = 0; i < 5; i++) { //用尾插法创建链表,并赋值
  21. p = new List;
  22. p>data = i;
  23. //这个过程不要想象的太复杂,只要通过画图来,思路很清晰
  24. p>last = head;
  25. head>next = p;
  26. head = p;
  27. }
  28. first>last = head;
  29. head>next = first;
  30. return first;
  31. }
  32. void PrintList(List *first){
  33. List *q = first;
  34. first = first>next;
  35. cout << “正序打印:”;
  36. for (; first != q; first = first>next) {
  37. cout << first>data << ” “;
  38. }
  39. cout << endl;
  40. List *p = first;
  41. first = first>last;
  42. cout << “逆序打印:”;
  43. for (; first != p; first = first>last) {
  44. cout << first>data << ” “;
  45. }
  46. }
  47. int main() {
  48. List *s,*t;
  49. s = CreateList();
  50. t = InitialList(s);
  51. PrintList(t);
  52. }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29876893/viewspace-1814391/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/192007.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code