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

链表的学习-2

时间:2019-04-30 23:44:21      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:rtb   create   头插法   单链表   col   size   div   creat   方向   

一.单链表的学习

单链表:也叫单向链表,只能从一个方向遍历和进行操作

单链表分为2种,带头结点的和不带头结点的,这里主要说明一下带头结点的单链表。

二.带头结点的单链表

技术图片

 

三.单链表的结点结构体

 

typedef struct LNode {
    int data;//存放数据 存放的数据类型也可以是字符等等,为了方便先存放int型。 
    struct LNode* pNext;//指针指向下个结点 
}LNode;

 

结点的结构体名字可以随便定义看个人喜好

四.链表的初始化

单链表的写法各有个的写法,各有个的风格,这也是网上链表的代码都不太一样的原因,其实理解了链表是怎么操作的后,它们都是一样的。

 

单链表的操作主要围绕的就是头结点,所以第一步是先创建头结点。

第一步:创建头结点。

LNode* Create_List()
{
    LNode* pHead = (LNode *)malloc(sizeof(struct LNode));//为头结点的创建,申请空间
    pHead->data = NULL;//置NULL的原因是头结点不用存数据,如果想存有关的信息也可以的。 
    pHead->pNext = NULL;//将头结点指向的下一个结点的pNext置为空。理由是头结点的下一个结点的pNext地址随机,防止指针"飞"了     
    return pHead; //返回头结点
}

 

头结点建立好了,当然是建立与头结点相关相连的结点。

第二步:创建结点

LNode* Create_Node(int data)
{
    LNode* node = (LNode*)malloc(sizeof(LNode));//为下一个结点分配地址空间
    node->data = data;//存放数据    
    node->pNext = NULL;//建立结点后,指向下一个结点的指针置空。
    return node;
}

 

将第一步和第二步返回的结点和头结点链接起来,要不插在头结点后面,要不插在末尾,所以分为头插法和尾插法。这里先说头插法,日后再补、

第三步:将头结点和结点链接起来

头插法:

void List_InsertByHead(LNode* pHead,int data)
{
    LNode *node = Create_Node(data);
    node->pNext = pHead->pNext;
    pHead->pNext = node;
}

 

 

 

链表的学习-2

标签:rtb   create   头插法   单链表   col   size   div   creat   方向   

原文地址:https://www.cnblogs.com/ljh-blog/p/10795248.html

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