链表(主要是单链表)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表(主要是单链表)相关的知识,希望对你有一定的参考价值。

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

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

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

 

单链表的存储

定义一个结点类型

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

以上是关于链表(主要是单链表)的主要内容,如果未能解决你的问题,请参考以下文章

java数据结构:单链表常见操作代码实现

单链表快速排序

数据结构:链表(单链表)

单链表

数据结构--单链表简单代码实现(总结)

C/C++语言数据结构快速入门(代码解析+内容解析)链表(单链表,双链表,循环链表,静态链表)