考研之数据结构(第二章总结)

1.线性表:具有相同特性数据元素的一个有限序列,该序列中所含元素的个数叫做线性表的长度。
2.逻辑特性:线性表只有一个表头元素,只有一个表尾元素,表头元素没有前驱,表尾元素没有后继。
3.线性结构包括:线性表、栈、队列、串。
4.线性表的存储结构分为:顺序存储结构和链式存储结构。
5.顺序存储:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。
特性:1.随机访问特性 2.占有连续的存储空间 3.做插入操作时要移动多个元素
6.链表:一种物理储存单元上非连续,非顺序的存储结构。
特性:1.不支持随机访问 2.结点的存储空间利用率较低 3.支持存储空间的动态分布 4.做插入操作时不需要移动元素
7.顺序表与链表各自的特点:
基于空间的比较:①.存储分配方式:
顺序表的存储空间是静态分配的(一次分配)
链表的存储空间是动态分布的(多次分配)
②.存储密度(存储密度=结点值域所占的存储量/结点结构所占的存储总量)
顺序表的存储密度=1
链表的存储密度<1(因为结点中有指针域)
基于时间的比较:①.存取方式:顺序表可以随机存取,链表只能顺序存取
②.插入/删除时移动元素的个数:顺序表平均需移动近一半的元素,链表不需要移动元素,只需要修改指针。

8.插入一个元素时所需移动元素次数的期望值(平均次数):E=1/(n+1) ∑_(i=1)^(n+1)▒(n-i+1) =n/2
删除一个元素时所需移动元素次数的期望值(平均次数):E=1/n ∑_(i=1)^n▒(n-i) =(n-1)/2

9.静态链表:用数组描述的链表
①一般链表结点空间来自于整个内存,静态链表则来自于结构体数组。
②静态链表中的指针不是用来存储内存地址的指针型变量,而是一个存储数组下标的整形变量。
10.在链表中设置头结点的作用:主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断。另外,不论链表是否为空,链表指针不变。
11.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成单链表和多重链表;而又根据指针的连接方式,链表又可分成动态链表和静态链表。
12.顺序存储结构是通过物理上相邻表示元素之间的关系的;链式存储结构是通过指针表示元素之间的关系的。
13.试述头结点,首元结点,头指针这三个概念的区别?
答:在线性表的链式存储结构中,头指针指链表的指针,若链表有头结点则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。头结点是为了操作的统一、方便而设立的,放在第一元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等),有头结点后,对在第一元素结点前插入结点和删除第一结点,其操作与对其它结点的操作统一了。而且无论链表是否为空,头指针均不为空。首元结点也就是第一元素结点,它是头结点后边的第一个结点。
在这里插入图片描述
在这里插入图片描述

发布了122 篇原创文章 · 获赞 221 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/jjsjsjjdj/article/details/103964021