码迷,mamicode.com
首页 > 其他好文 > 详细

链表(主要是单链表)

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

标签:动态表   next   new   复杂   操作   struct   color   delete   ext   

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

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

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

 

单链表的存储

定义一个结点类型

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个元素效率低
*无表满的问题
*适合于动态表

链表(主要是单链表)

标签:动态表   next   new   复杂   操作   struct   color   delete   ext   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!