‘壹’ c语言中,头指针,表头指针,头结点,第一结点分别是什么举个例子,谢谢。
头指针是以确定线性表中第一个元素对应的存储位置,一般用于处理数组,链表,队列等数据结构。单链表可以用头指针的名字来命名。单链表中头指针指向头节点。头指针指向上述数据结构的起始数据的指针,如指向数组首地址的指针,指向链表表头节点的指针。
头指针也就是表头指针
在单链表的第一个结点之前附设一个结点(是个结构体),称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向第一个结点的指针(即第一个元素结点的存储位置)。头结点的作用是使所有链表(包括空表)的头指针非空,并使对单链表的插入、删除操作不需要区分是否为空表或是否在第一个位置进行,从而与其他位置的插入、删除操作一致。
第一节点,不太清楚,应该是链表有效数据存储的第一个节点吧,就是去除了头结点的第一个节点。
‘贰’ 线性表链式存储结构是什么
线性表是一种逻辑结构,它有两种存储方式,顺序存储和链式存储。
顺序存储对应的是顺序表,链式存储对应的有单链表,双链表,循环链表以及静态链表。
其中,线性表的链式存储又称为单链表。
注:双链表、循环链表等都是由单链表演化而来。
单链表:一个后继指针,一个头结点和头指针。每一个结点是存储下一个结点的存储位置,因此最后一个结点存储null,也就是空值。
双链表:双链表结点中有两个指针,prior和next,即有前驱指针和后继指针,分别指向前驱和后继结点。
循环链表:循环链表和单链表的区别在于最后一个结点的指针不是null(回到单链表的知识去看一下吧),而是指向头结点,从而整个链表成为了一个环。
循环双链表:循环双链表中头结点的指针prior指针还要指向表尾结点。
注:在循环双链表L中,当循环双链表为空表时,其头结点的prior域和next域都等于L。
静态链表:静态链表是借助数组来描述线性表的链式存储结构。结点有data域和指针域next。按照我的理解:其实静态链表和单链表在结构上差不太多,但是静态链表又和顺序表很像,可以把静态链表看作是单链表和顺序表的结合吧。
链式存储结构就这几种了。