以下为《链表的建立课件》的无排版文字预览,完整内容请下载
链表的建立链表概述链表是连成一行的数据项集合,每一个数据项(元素)称为结点。在链表中可定义多个数据成员(数据域),一个(或多个)指向结构体的指针成员(指针域)。每个链表均有一个首部head,有一个尾部用空指针NULL表示。
链表的实现是通过一个结构体变量的指针域指向另一个结构体变量的首地址实现的。
注:“->”间接引用运算符,是二目运算符。“->”是一个整体,它是用于指向结构体子数据的指针,用来取子数据。链表的建立不带头结点的单向链表带头结点的单向链表 链表的建立是在一个链表中不断插入结点的过程。插入结点的方式有两种,一种是头部插入新结点,一种是尾部插入新结点(需要维护一个指向链表最后一个结点的指针)。初始链表是一个空链表,头指针指向NULL(尾部插入则增加指向空的尾部指针tail)。
在头部插入结点建立链表 在头部插入时,每一次插入结点,新插入的结点都需要指向头指针所指向的结点,而头指针则指向新插入的结点。//建一个不带头结点的链表且结点插入是在链表的头部 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 * head, * tail, * p;
char c;
head = NULL;//初始链表为空
//由于需要在尾部插入,保留一个指向尾部的指针tail是必要的,初始化为NULL;
tail = NULL;
while (1)
{
p = new node;
cout > p->data;
//插入过程
//由于是尾部插入,当链表为空时插入第一个结点和链表不为空时插入结点的处理不一样。
if (head == NULL) //链表为空时
{
p->next = NULL;
head = p;
tail = p;
}
else //链表不为空时{
p->next = NULL;
tail->next = p;
tail = p;
}
//询问是否继续输入新的结点数据
cout > c;
if (tolower(c) == 'n') break;
}
//返回头指针
return head;
}谢谢![文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《链表的建立课件》的无排版文字预览,完整内容请下载
链表的建立课件由用户“cyf5201314”分享发布,转载请注明出处