数据结构(四)——基于链式存储结构的线性表

数据结构(四)——基于链式存储结构的线性表

一、基于链式存储结构的线性表

1、链式存储的定义

链式存储为了表示数据元素与其直接后继元素间的逻辑关系,数据元素除了存储本身的信息外,还需要存储直接后继的信息。相连的数据元素之间在存储空间中不要求连续。
链式存储的逻辑结构
基于链式存储结构的线性表中,每个结点都包含数据域和指针域。数据域用于存储数据元素本身,指针域用于存储相邻结点的地址。

2、链表的定义

链表是基于链式存储结构的线性表
链表的基本元素:
头结点:链表中的辅助结点,包含指向第一个数据元素的指针
数据结点:链表中代表数据元素的结点,包含数据元素与地址信息
尾结点:链表中的最后一个结点,包含的地址信息尾空
链表根据相邻结点中逻辑关系的不同,分为单链表、循环链表和双向链表。
单链表:每个结点只包含直接后继的地址信息
循环链表:单链表中的最后一个结点的直接后继为第一个结点
双向链表:单链表中的结点包含直接前驱和直接后继的地址信息

原文地址:http://blog.51cto.com/9291927/2061228

时间: 2024-10-01 04:58:28

数据结构(四)——基于链式存储结构的线性表的相关文章

数据结构之队列——链式存储结构(php代码实现)

<?php class QNode{     public  $data;     public  $next;     public function __construct($data){         $this->data=$data;         $this->next=null;     } } class LinkQueue{ //链队列包含头结点,实例化时,此队列为空     private $data;     private $next;     private

数据结构之栈——链式存储结构(php代码实现)

<?php /**     1. DestroyStack(): 栈的销毁     2. ClearStack(): 将栈置为空栈     3. StackEmpty(): 判断栈是否为空     4. StackLength(): 返回栈的长度     5. GetTop(): 取得栈顶的元素     6. Push(): 插入新的栈顶元素     7. Pop(): 删除栈顶元素     8. StackTraverse(): 遍历栈元素  */ class LNode{     publi

基于链式存储结构的图书信息表的创建和输出

描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息. 输入 输入n+1行,其中前n行是n本图书的信息(书号.书名.价格),每本图书信息占一行,书号.书名.价格用空格分隔,价格之后没有空格.最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0).其中书号和书名为字符串类型,价格为浮点数类型. 输出 总计n+1行,第1行是所创建的图书表中的图书个数,后n行是n本图书的信息(书号.书名.价格),每

BJFU—214基于链式存储结构的图书信息表的创建和输出

#include<stdio.h>#include<stdlib.h>#define MAX 100 typedef struct bNode{ double no; char name[MAX]; double price; struct bNode * next;}bNode,*bLnode; bLnode createData(bLnode B);void traverse(bLnode B); int main(){ bLnode book; book = createDa

数据结构--线性表的链式存储结构

一 线性表的链式存储结构 A.链式存储的定义为了表示每个数据元素与直接后继元素之间的逻辑关系:数据元素除了存储本身的信息外,还需要存储其直接后继的信息图示B链式存储逻辑结构基于链式存储结构的线性表中,每个结点都包含数据域和指针域1.数据域:存储数据元素本身2.指针域:存储相邻结点的地址图示C链表中的基本概念1.头结点--链表中的辅助结点,包含指向第一个数据元素的指针(方便插入和删除)2.数据结点--链表中代表数据元素的结点,表现形式为:(数据元素,地址)3.尾节点--链表中的最后一个数据结点,包

数据结构开发(5):线性表的链式存储结构

0.目录 1.线性表的链式存储结构 2.单链表的具体实现 3.顺序表和单链表的对比分析 4.小结 1.线性表的链式存储结构 顺序存储结构线性表的最大问题是: 插入和删除需要移动大量的元素!如何解决? 链式存储的定义: 为了表示每个数据元素与其直接后继元素之间的逻辑关系:数据元素除了存储本身的信息外,还需要存储其直接后继的信息. 链式存储逻辑结构: 基于链式存储结构的线性表中,每个结点都包含数据域和指针域 数据域:存储数据元素本身 指针域:存储相邻结点的地址 专业术语的统一: 顺序表 基于顺序存储

七、线性表的链式存储结构

1.问题引入 开发数组类模板的原因在于:在创建基于顺序存储结构的线性表时,发现这样的线性表可能被误用,因为重载了数组访问操作符,使用时跟数组类似,但是线性表和数组有很大的区别,所以激发了新的需求:开发数组类替换C++原生数组类,因为原生数组类也存在着很大缺陷,使用不方便. 基于顺序存储结构的线性表的另一个缺点:插入或删除元素时,涉及到大量数据元素的移动,对于效率的影响非常大 一个新的需求:在插入或删除元素时不需要大量移动数据元素的一种数据结构,即基于链式存储结构的线性表 2.链式结构的定义 为了

第21课 线性表的链式存储结构

1. 链式存储的特点 (1)为了表示每个数据元素与其直接后继元素之间的逻辑关系: (2)数据元素除了存储本身的信息外,还需要存储其直接后继的信息. (3)避免了顺序存储结构线性表在插入和删除元素时需要移动大量元素的问题. 2. 链式存储逻辑结构 (1)数据域:存储数据元素本身 (2)指针域:存储相邻结点地址 3. 链表中的基本概念 (1)头结点:链表中的辅助结点,包含指向第一个数据元素的指针 (2)数据结点:链表中代表数据元素的结点,表现形式为:(数据元素,地址) (3)尾结点:链表中的最后一个

线性表的链式存储——线性表的链式存储结构

1,基于顺序存储结构插入或删除元素时候会涉及大量元素移动,非常影响效率,本文着手解决这个问题: 2,链式存储结构为了弥补顺序存储结构效率上的问题: 3,链式存储的定义: 1,为了表示每个数据元素与其后继元素之间的逻辑关系,数据元素除了存储本身的信息外,还需要存储其直接后继的信息: 2,幼儿园排队:每个小朋友记住他前面的小朋友是谁,这样可以轻易的排队: 4,一定要分清 p->next 是左值还是右值,左值时表示节点内存储的位置,右值时表示节点对象: 5,链式存储逻辑结构: 1,基于链式存储结构的线