关闭

C语言链表

225人阅读 评论(0) 收藏 举报
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 ).
1
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22485次
    • 积分:1026
    • 等级:
    • 排名:千里之外
    • 原创:79篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    最新评论