C语言链表

原创 2016年08月29日 15:39:29
1.数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,
  增加了灵活性。但数组也同样存在一些弊病。


2.我们希望构造动态的数组,随时可以调整数组的大小,
   以满足不同问题的需要。链表就是我们需要的动态数组。


3.它是在程序的执行过程中根据需要有数据存储就向系统要求申请存储空间,
  决不构成对存储区的浪费。


4.单链表 :有一个头节点head,指向链表在内存的首地址。


5.链表中的各个元素在内存中是可以不是连续存放的,但是要找到某一
   元素,必须知道它的地址,这就需要链表必须有一个头指针(head)


6.链表操作,包括链表的创建,链表的输出,链表的删除,链表的插入等
 
7.链表节点的数据结构定义:
   struct node
  {
      int num;
      struct node *p;
   };
   @除一个整型的成员外,成员p是指向与节点类型完全相同的指针。
   @结构体内的指针域的数据类型使用了未定义成功的数据类型
    @这是在C中唯一规定可以先使用后定义的数据结构。


8.链表的创建、输出步骤:


   LINK_NODE* alloca_node(int value)
    {
         LINK_NODE* pLinkNode = NULL;
pLinkNode = (LINK_NODE*)malloc(sizeof(LINK_NODE));

pLinkNode->data = value;
pLinkNode->next = NULL;
return pLinkNode;
     }
  1 ) 定义链表的数据结构;


  2 ) 创建一个空表;


  3 ) 利用malloc ( )函数向系统申请分配一个节点;


  4 ) 将新节点的指针成员赋值为空。若是空表,将新节点连接到表头;若是非空表,将新


      节点接到表尾;


  5 ) 判断一下是否有后续节点要接入链表,若有转到3 ),否则结束;


9.单链表的输出过程有以下几步
  1) 找到表头;


  2) 若是非空表,输出节点的值成员,是空表则退出;


  3 ) 跟踪链表的增长,即找到下一个节点的地址;


  4) 转到2 ).
版权声明:本文为博主原创文章,未经博主允许不得转载。

学习心得:链表的操作(C语言实现)

今天将给大家讲述链表的学习心得。学习数据结构,毋庸置疑链表必须学好,后面的栈、队列、树、图都是以链表为基础的;链表的种类很多,有单链表、双链表、循环链表、非循环链表;在此,我们以非循环单链表为例,来讲...
  • lpp0900320123
  • lpp0900320123
  • 2014年03月03日 18:55
  • 58535

c语言实现链表及其基本操作

链表:        链表是一种物理储存单元上非连续、非顺序的储存结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。...
  • MBuger
  • MBuger
  • 2016年09月13日 18:18
  • 8739

C语言—链表的查找

链表的查找的基本思路 我们以后想要得到的插入和删除,都是建立在链表的查找之上,如果你想删除或者插入但是你却连位置都没有,这就很尴尬了,所以链表查找我觉得挺重要的,也是挺难理解的,因为只要理解这个后...
  • Dawn_sf
  • Dawn_sf
  • 2017年01月20日 15:57
  • 535

一步一步教你从零开始写C语言链表--->构建一个链表

为什么要学习链表?链表主要有以下几大特性:1、解决数组无法存储多种数据类型的问题。2、解决数组中,元素个数无法改变的限制(C99的变长数组,C++也有变长数组可以实现)。3、数组移动元素的过程中,要对...
  • morixinguan
  • morixinguan
  • 2017年04月02日 14:34
  • 9386

链表常见面试题-C语言实现

前面的博客已经介绍过了实现链表的一些相关的功能,所以在这里就不对链表多加解释说明了。 对于链表相关面试题这里解释几个有特点的题: 1.对于求查找链表的中间结点,要求只能遍历一次链表? 方式:使用两个指...
  • IT_iverson
  • IT_iverson
  • 2017年08月03日 14:03
  • 1259

C语言链表的创建和遍历

链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”...
  • tihumenjiang
  • tihumenjiang
  • 2017年03月20日 14:56
  • 399

C语言链表各类操作详解

链表概述    链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一...
  • pf4919501
  • pf4919501
  • 2014年08月25日 11:30
  • 45509

C语言实现单链表面试题汇总

这篇博客只有针对单链表的不同面试题的不同函数,没有对单链表的具体实现方法的介绍。 单链表的具体实现方法(创建,初始化,前插,后插,删除,插入,销毁等),可以参考我的另一边博客: http://bl...
  • ljx_5489464
  • ljx_5489464
  • 2016年03月20日 03:51
  • 1618

简单的C语言链表(含输入、输出功能)

#include #include #include //malloc头文件 struct Student //定义结构体 { int num; struct St...
  • sinat_39504715
  • sinat_39504715
  • 2017年09月10日 01:08
  • 339

C语言链表-创建链表并且从键盘输入赋值

链表是C语言里面学习比较困难的一部分内容,下面这个例子就演示了创建一个链表并且从输入端赋值,希望对大家有用。#include #include struct link { int num...
  • tangCprogranm
  • tangCprogranm
  • 2017年10月03日 23:43
  • 554
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言链表
举报原因:
原因补充:

(最多只允许输入30个字)