精华内容
下载资源
问答
  • 在删除算法中,如果是不带头结点的链表,则首先需要判断指针是否为空; (2).对插入或删除参数x是否第一个结点需要增加特殊判断和处理; (3).在函数传递参数时,Linklist必须改为Linklist*类型,才能保证把...

    (1).在删除算法中,如果是不带头结点的链表,则首先需要判断头指针是否为空;

    (2).对插入或删除的参数x是否第一个结点需要增加特殊的判断和处理;

    (3).在函数传递参数时,Linklist必须改为Linklist*类型,才能保证把删除以后的链表正确返回。

     

    转载于:https://www.cnblogs.com/maomaohhmm/archive/2012/09/09/2677524.html

    展开全文
  • 链表头结点与头指针概念

    千次阅读 2016-05-04 16:16:28
    2.头指针具有标识作用,因此经常使用链表的名字作为头指针名 3.无论链表是否为空,头指针均不为空。头指针是链表的必要元素。 关于头结点: 1.头结点是放在第一个元素结点之前的结点,头结点不是链表中的必须...
    关于头指针:
    1.在线性表的链式存储结构中,头指针是指链表中指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。

    2.头指针具有标识作用,因此经常使用链表的名字作为头指针名

    3.无论链表是否为空,头指针均不为空。头指针是链表的必要元素。

    关于头结点:
    1.头结点是放在第一个元素结点之前的结点,头结点不是链表中的必须元素,其数据域一般无意义,(有些情况下会存放链表的长度,或用作监视哨等)

    2.有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,这些操作与对其他结点的操作就相同了。

    以下是对链表中进行插入时的操作:

    void inputLlist(Linklist *lst,int n,int* arr)
    {

    for(int i=n-1;i>=0;i--)
    {
         LNode *p=(LNode*)malloc(sizeof(LNode));
          p->data=arr[i];
          p->next=(*lst)->next;                       //p->next=*lst;
     (*lst)->next=p; //保留原头结点    //*lst=p;红色部分表示插入时不断改变头结点,头指针
    }
    }

    展开全文
  • 链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL. 2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!...

    在这里插入图片描述

    链表又 数据域 还有指针域

    数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。

    作用

    1、防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL.
    2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!
    3、单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。
    4、对单链表的多数操作应明确对哪个结点以及该结点的前驱。不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同 ,从而减少分支,使算法变得简单 ,流程清晰。对单链表进行插入、删除操作时,如果在首元结点之前插入或删除的是首元结点,不带头结点的单链表需改变头指针的值,在C 算法的函数形参表中头指针一般使用指针的指针(在C+ +中使用引用 &);而带头结点的单链表不需改变头指针的值,函数参数表中头结点使用指针变量即可。

    展开全文
  • 头指针和头结点的异同 头指针:  1、头指针是指链表指向第一个结点的指针,若链表有头结点,则...1、头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般无意义(但也可以用来存放链表的

    头指针和头结点的异同

    头指针: 
    1、头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针。 
    2、头指针具有标识作用,所以常用头指针冠以链表的名字(指针变量的名字)。 
    3、无论链表是否为空,头指针均不为空。
     4、头指针是链表的必要元素。

    头结点: 
    1、头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般无意义(但也可以用来存放链表的长度)。 
    2、有了头结点,对在 第一个元素结点前插入结点 和 删除第一结点起 
    操作与其它结点的操作就统一了。 
    3、头结点不一定是链表的必要元素。

    C语言中,可以用结构指针来描述单链表。

    结点由存放数据元素的数据域和存放后继结点地址的指针域组成。

    单链表的读取

    获得链表第i个数据的算法思路: 
    1、生命一个结点p指向链表第一个结点,初始化j从1开始; 
    2、当j

    单链表的插入

    单链表第i个数据插入结点的算法思路: 
    1、声明一结点p指向链表头结点,初始化j从1开始; 
    2、当j<1时,就遍历链表,让p的指针向后移动,不断指向下一结点,j累加1; 
    3、若到链表末尾p为空,则说明第i个元素不存在; 
    4、否则查找成功,在系统中生成一个空结点s; 
    5、将数据元素e赋值给s->data 
    6、单链表的插入刚才两句标准语句;s->next = p->next,p->next = s 
    7、返回成功。

    单链表的删除

    p->next = p->next->next 
    q = p->next ; p->next = q -> next

    单链表第i个数据删除结点的算法思路: 
    1、声明结点p指向链表第一个结点,初始化j=1; 
    2、当j<1时,就遍历链表,让p的指针向后移动,不断指向下一个结点,j累加1; 
    3、若到链表末尾p为空,则说明第i个元素不存在; 
    4、否则查找成功,将欲删除结点p->next复制给q; 
    5、单链表的删除标准语句p->next = q -> next 
    6、将q结点中的数据复制给e,作为返回; 
    7、释放q结点。

    展开全文
  • 链表中设置头结点的作用

    千次阅读 2015-03-14 14:55:42
    (1)对带头结点的链表,在表任何结点之前插入结点或删除表中任何结点,所要做都是修改前一结点指针域,因为任何元素...(2)对带头结点的链表,表头指针是指向头结点的非空指针,因此空表与非空表处理是一样
  • 输入一个链表的头结点,从尾到头反过来打印每个结点的值。 链表的节点定义如下: struct ListNode{ int value;  ListNode* next; } 首先回顾一下链表的基本操作 链表的后插入: //注意,传入的参数是指向...
  • 链表头结点会让插入与删除简化,但至于如何简化,为什么会简化可能不清楚,那我们就来实现一下删除与插入无头结点代码。 无头结点实现插入,删除,遍历输出 #include"stdio.h" #include"stdlib.h" typedef ...
  • 头结点的含义以及引入头结点的作用

    千次阅读 多人点赞 2020-06-23 11:56:15
    头指针:是指向第一个结点的指针,如果链表没有引入头结点,那么头指针指向的是链表的第一个结点。头指针是链表所必需的。 [注意]无论是否有头结点,头指针始终指向链表的第一个结点。如果有头结点,头指针就指向...
  • 关于头指针: 1.在线性表的链式存储结构中,头指针是指链表中指向第一个结点的...1.头结点是放在第一个元素结点之前的结点,头结点不是链表中的必须元素,其数据域一般无意义,(有些情况下会存放链表的长度,或用作...
  • 数据结构: 链表中哨兵(头结点)的作用 单链表实现中,常有 带头结点 和 不带头结点 两种实现方式. 笔者在做算法与数据结构题目时,非常喜欢使用带头结点实现方式.可以简化一些边界处理. 哨兵节点 哨兵节点,也是...
  • 头结点的作用

    2021-01-13 15:59:56
    1、防止单链表是空的而设的,当链表为空的时候,带头结点的头指针就指向头结点,如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL。 2、是为了方便单链表的特殊操作,能有效减少代码量,在插入在表头...
  • 带头节点:创建一个结点表示空链表,这个节点就是头结点,并且头结点数据不具有实际意义。但是我们一般不关心头结点中元素,只起“带头”作用。双向要求每个结点中都有一个next指针指向下一个,一个prev指针...
  • 为了防止往一个空链表中插入一个结点时,新插入的结点那就是链表的头指针,这时如果链表的结点是一级指针的话,那么出了链表插入函数的作用域后,头结点又回到了原来的空值。 比如下面的一段程序 1 // 链表的头...
  • 【Algorithm】链表算法中哑结点作用

    千次阅读 2019-03-14 22:26:16
    题目描述 Sort a linked list using insertion sort. 一般思路(直接在原链表上进行插排...不使用哑结点问题就是多判断了一个cur要替换头结点头结点往后移状况,这时不能用遍历代码 需要额外写一种情况 ...
  • 链表头结点作用

    2013-05-05 10:47:57
    数据结构中,在单链表的开始结点之前...当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL. 2、是为了方便单链表的特殊操作,插入在表头或者删除第
  • 1、分配空间但不赋值,表头结点的作用(本身不带数据,仅标志表头,从第二个结点开始操作) 2、首先创建结点,然后新结点指针域指向NULL;(*head = NULL); 程序代码: #include #include ...
  • typedef int ElemType;...以上定义双向链表的结构体 以下是对双向链表作用的实现 void DoubleLinkInit(SDoubleLink *head)//双向链表初始化 { if (head == NULL) exit(0); head->next = head->prev =
  • 数据结构中头结点的作用

    千次阅读 多人点赞 2019-01-19 12:20:36
    1、防止单链表是空的而设的,当链表为空的时候,带头结点的头指针就指向头结点,如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL。 2、是为了方便单链表的特殊操作,能有效减少代码量,在插入在表头...
  • 单链表头结点的作用

    千次阅读 2014-03-27 11:57:57
    数据结构中,在单链表的开始结点...当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL. 2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.
  • 链表头节点作用

    2019-12-20 17:35:47
    深刻理解:带头结点和不带头结点区别 使用头结点的优势 定义 头指针:链表第一个节点存储位置 首节点:第一个存储数据节点 头节点: 首节点前面,存放首节点地址 头节点不是链表必须 ,但有头节点能让链表对...
  • 链表头结点的作用

    2012-11-03 13:30:18
    链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL. 2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性...
  • 浅谈单链表头结点的作用

    千次阅读 多人点赞 2019-06-23 16:18:16
    引入头结点的好处 使得在链表头部的操作(如:插入删除等)与在链表中部与尾部一致(统一) 使非空链表与空链表的操作统一 以插入为例,分析上述两点好处 //I 带头节点的单链表(空) 插入节点 s->next = H->next;...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 337
精华内容 134
关键字:

链表的头结点作用