带头结点与不带头结点的单链表的区别?

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:17:32

用实例说明,下面的程序在win-tc和tc2.0下都调试通过,其中tail=tail->next;tail->next=p;(就是生成带头节点的单链表),这两句改成注释中的那两句就会生成不带头结点的单链表,你自己对着程序画一画就明白了。
什么时候要使用带头节点的单链表?为了在第一个数据元素前面加入新元素或者删除第一个节点时头指针的值不变,在第一个数据元素前面要加一个所谓的头节点。
在带头节点的单链表中,头指针(head)只有一个域,即链指针,它指向头节点,头节点有两个域,一个是数据域,值为0(NULL),还有一个域,链指针,这个链指针指向单链表的第一个数据元素。
而在不带头结点的单链表中,头指针也只有一个链指针,但它指向单链表的第一个数据元素。现在你一定明白了吧。
/* 调试通过 */
/* 顺序查表程序 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define NUM 4

struct chain
{
char name[20];
char city[20];
char sex[10];
char age[10];
char job[10];
struct chain *next;
};

struct chain *create();
struct chain *SequelSeach(struct chain *head,char name[]);
void print_data(struct chain *point);

struct chain Datas[NUM]=
{
"Sun","Wuhan","Male","24","student",NU

数据结构题:创建一个不带头结点的链栈 求数据结构:建立一个带头结点的单链表函数 用c语言尾插法建立带头结点的单链表 数据结构题!设计一算法,逆置带头结点的动态单链表L 设计一算法,逆置带头结点的动态单链表L 试写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L) 设计内容:建立一个带头的单链表:L={12,13,21,24}。结点的DATA域为整型数据,由键盘输入 编一程序:①建立一个数据域为1至10的带头结点的链表; 如何更改下题(题目是将值为的结点x插入到带头结点的,按整数值递增排列的单链表中),使在VC下正常运行 求一完整程序:在带头结点的线性单链表中插入一元素i(请用C语言表述)!谢谢!