首页 > 其他 > 详细

链表(主要是单链表)

时间:2017-05-20 22:21:43      阅读:367      评论:0      收藏:0      [点我收藏+]

单链表:只指出后继关系的链表

双链表:同时存储前趋和后继

循环链表:指出后继的同时指出头结点和尾结点的关系

 

单链表的存储

定义一个结点类型

struct  linkRec

   {

     datatype  data;

     linkRec  *next;

   }

 

单链表操作-插入

在结点p后插入一个结点

*申请空间
*输入数据放入申请到的空间
*链入p后

tmp = new linkRec;  // 创建一个新结点

tmp->data = x;        // 把x放入新结点的数据成员中

tmp->next = p->next;   // 把新结点和p的下一成员相连

p->next = tmp;        //把p和新结点连接起来

 
单链表操作-删除
把结点p后的结点删除

delPtr=p->next;

p->next=delPtr->next;

delete delPtr;

 

单链表操作-建立

*定义头指针:linkRec  *head;
*建立头结点
  -申请空间
  -设为头结点 
*逐个从键盘输入数据,存入链表
  -接受输入
  -申请空间
  -输入数据放入申请到的空间
  -链入链表尾
*置链表结束标志
 1 head = new  linkRec;
 2 rear = head;
 3 cin >> in_data;
 4 while (输入未结束)
 5   { p = new linkRec;
 6      p->data = in_data;
 7      rear->next = p;
 8      rear = p;
 9      cin >> in_data;
10   }
11 rear->next = NULL; //这一行是很重要的

 

单链表操作-输出

1 p = head->next;
2 while ( p != NULL)
3    { cout << p->data;
4       p = p->next;
5    } 

 

链表总结

*实现较复杂
*插入、删除效率高,但查找第i个元素效率低
*无表满的问题
*适合于动态表

链表(主要是单链表)

原文:http://www.cnblogs.com/codelearning/p/6883237.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!