数据结构复习知识点解析.docx

上传人:b****6 文档编号:8451850 上传时间:2023-01-31 格式:DOCX 页数:18 大小:38.27KB
下载 相关 举报
数据结构复习知识点解析.docx_第1页
第1页 / 共18页
数据结构复习知识点解析.docx_第2页
第2页 / 共18页
数据结构复习知识点解析.docx_第3页
第3页 / 共18页
数据结构复习知识点解析.docx_第4页
第4页 / 共18页
数据结构复习知识点解析.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据结构复习知识点解析.docx

《数据结构复习知识点解析.docx》由会员分享,可在线阅读,更多相关《数据结构复习知识点解析.docx(18页珍藏版)》请在冰豆网上搜索。

数据结构复习知识点解析.docx

数据结构复习知识点解析

第一章:

概论

知识点:

1、数据结构的基本概念:

数据、数据元素、数据项等之间的区和联系。

2、数据的逻辑结构,数据的存储结构、数据的逻辑结构和存储结构各有哪些基本类型、数据的基本逻辑结构有什么特点。

我们所学的几种常见的数据结构中(顺序表、链表、队列、栈、串、树、图等),哪些是线性数据结构,哪些是非线性数据结构?

3、算法复杂性的概念、内容和算法复杂性的计算。

简单算法复杂性的判断:

(1)sum=0;

for(i=1;i<=n;i++)sum=sum+i;

其中i=1,2,3,…,k,需频度k<=n,所以复杂性为O(n)

(2)i=1;

while(i<=n)i=i+2;

其中i=1,3,5,…,(2k-1),需2k-1<=n,则频度k<=(n+1)/2,复杂性为O(n)

(3)i=1;

while(i<=n)i=i*3;

其中i=1,3,32,…,3k,需3k<=n,则频度k<=log3n,复杂性为O(log3n)

(4)i=1;

while(i*i<=n)i++;

其中i=1,2,3,…,k,需k2<=n,则频度k<=n1/2,复杂性为O(n1/2)

习题:

1、填空题

(1)数据的逻辑结构包括:

、、、;

(2)存储结构包括:

、、、。

(3)数据结构中评价算法的两个重要指标是

(4)下面程序段中带下划线的语句的执行次数的数量级是:

i=1;while(i

(5)计算机执行下面的语句时,语句s的执行次数为_______。

for(i=l;i

for(j=n;j>=i;j--)

s;

(6)下面程序段的时间复杂度为________。

(n>1)

sum=1;

for(i=0;sum

2、选择题

(1)算法的计算量的大小称为计算的()。

A.效率B.复杂性C.现实性D.难度

(2)算法的时间复杂度取决于()

A.问题的规模B.待处理数据的初态C.A和B

(3)计算机算法指的是(),它必须具备()这三个特性。

(1)A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法

(2)A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性

C.确定性、有穷性、稳定性D.易读性、稳定性、安全性

(4)从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构B.顺序结构、链式结构

C.线性结构、非线性结构D.初等结构、构造型结构

(5)以下数据结构中,哪一个是线性结构()?

A.广义表B.二叉树C.稀疏矩阵D.串

(6)在下面的程序段中,对x的赋值语句的频度为()

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

x=x+1

A.O(2n)B.O(n)C.O(n2)D.O(log2n)

(7)程序段

for(i=n;i>=1;i--)

for(j=1;j<=n;j++)

IFA[j]>A[j+1]THENA[j]与A[j+1]对换;

其中n为正整数,则最后一行的语句频度在最坏情况下是()

A.O(n)B.O(nlogn)C.O(n3)D.O(n2)

(8)以下数据结构中,()是非线性数据结构

A.树B.字符串C.队D.栈

(9)连续存储设计时,存储单元的地址()。

A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续

3、问答题

(1)数据元素之间的关系在计算机中有几种表示方法?

各有什么特点?

(2)数据的逻辑结构有哪些基本类型?

(3)数据的存储结构由哪四种基本的存储方法实现?

第二章:

线性表

知识点:

1、线性表的基本概念和两种存储方式:

顺序存储、链式存储

2、顺序表的概念、数据结构、存储,插入、删除运算及其时间复杂度;顺序表的特点:

随机存储

3、单链表的存储、插入、删除运算特点?

是否可以随机存取?

访问、增加或者删除结点时的时间复杂度?

4、单链表中插入结点和删除结点的基本步骤?

头指针与头结点之间的根本区别,头结点与首元结点的关系?

在链表里面,引入头结点有什么作用?

5、有头结点、无头结点的单链表为空的条件分别是什么?

有头结点:

L->next==NULL,无头结点:

L==NULL

习题:

1、选择题

(1)下述哪一条是顺序存储结构的优点?

()

A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示

(2)下面关于线性表的叙述中,错误的是哪一个?

()

A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

(3)线性表是具有n个()的有限序列(n>0)。

A3.表元素B.字符C.数据元素D.数据项E.信息项

(4)链表不具有的特点是()

A.插入、删除不需要移动元素B.可随机访问任一元素

C.不必事先估计存储空间D.所需空间与线性长度成正比

(5)下面的叙述不正确的是()

A.线性表在链式存储时,查找第i个元素的时间同i的值成正比

B.线性表在链式存储时,查找第i个元素的时间同i的值无关

C.线性表在顺序存储时,查找第i个元素的时间同i的值成正比

D.线性表在顺序存储时,查找第i个元素的时间同i的值无关

(6)若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。

A.O(0)B.O

(1)C.O(n)D.O(n2)

(7)对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n)O(n)B.O(n)O

(1)C.O

(1)O(n)D.O

(1)O

(1)

(8)线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()

A.O(i)B.O

(1)C.O(n)D.O(i-1)

2、填空

(1)当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_______存储结构。

(2)线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是________。

(3)在一个长度为n的顺序表中第i个元素(1<=i<=n)之前插入一个元素时,需向后移动__1______个元素。

(4)在单链表中设置头结点的作用是_______。

(5)链接存储的特点是利用_______来表示数据元素之间的逻辑关系。

(6)顺序存储结构是通过_______表示元素之间的关系的;链式存储结构是通过______表示元素之间的关系的。

(7)对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为______个。

(8)在单链表L中,指针p所指结点有后继结点的条件是:

__

(9)线性结构包括______、______、_____和______。

线性表的存储结构分成_____和______。

3、应用题

(1)线性表有两种存储结构:

一是顺序表,二是链表。

试问:

如果有n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。

在此情况下,应选用哪种存储结构?

为什么?

若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?

为什么?

(2)说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首元结点的关系。

(3)删除顺序表中所有的正数,要求移动次数小。

搜索顺序表,对每一个正数,先不删除,而是累计当前正数个数s,于是,对每个非正数,将它一次性前移s位。

算法复杂性为O(n)。

voiddels(sqlist*L){

ints,i;

s=0;//正数计数器

for(i=0;in;i++)

if(L->data[i]>0s++;//累计当前正数

elseif(s>0)L->data[i-s]=l->data[i];//向前移动s位

L->n=L->n-s;//调整表长

}

还可以删除顺序表中所有的负数、字符等,主要是删除数据的条件不一样

(4)单链表算法运用,如链表合并,将两个有序表合并为一个有序表

lklistpurge(lklistA,lklistB){

pointerC,p,q,r;

p=A->next;q=B->next;

C=A;r=C;//取A头结点作C头结点

while(p!

=NULL&&q!

=NULL){

if(p->data<=q->data)

{r−>next=p;r=p;p=p->next;}

else{r−>next=q;r=q;q=q->next;}

}

if(p!

=NULL)r->next=p;//A表有剩余结点

elser->next=q;

deleteB;//释放B头结点

returnC;

}

第三章栈、队列和串

知识点:

1、栈的定义、栈顶、栈底、运算特点(先进后出),顺序实现和链接实现及其特点,栈的应用

2、队列的概念,队头、队尾、运算特点(后进后出),顺序实现、循环队列、链队列

3、串的概念和串长的计算

习题

1、选择题

(1)对于栈操作数据的原则是()。

A.先进先出B.后进先出C.后进后出D.不分顺序

(2)栈在()中应用。

A.递归调用B.子程序调用C.表达式求值D.A,B,C

(3)一个递归算法必须包括()。

A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分

(4)用链接方式存储的队列,在进行删除运算时()。

A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改

(5)用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。

A.仅修改队头指针B.仅修改队尾指针

C.队头、队尾指针都要修改D.队头,队尾指针都可能要修改

(6)递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。

A.队列B.多维数组C.栈D.线性表

(7)栈和队列都是()

A.顺序存储的线性结构B.链式存储的非线性结构

C.限制存取点的线性结构D.限制存取点的非线性结构

2、应用题

(1)名词解释:

栈、队列?

(2)简述顺序存储队列的假溢出的避免方法及队列满和空的条件。

第4章多维数组和广义表

知识点:

1、多维数组的定义,对于一个多维数据,如何计算里面元素的个数?

在存储多维数组时,如果已知首元素的存储地址,如何求数组里面任意元素的存储地址?

(注意,行优先、列优先、元素的长度)

2、广义表的概念、表长、深度、表头、表尾;广义表的取表头和取表尾操作;注意,取表头去的是原则取表尾得到的是表,会利用广义表的取表头和取表尾操作分离广义表的原子。

习题:

1、选择题

(1)将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为()。

供选择的答案:

A.198B.195C.197

(2)设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为()。

A.i(i-l)/2+jB.j(j-l)/2+iC.j(j-l)/2+i-1D.i(i-l)/2+j-1

(3)设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。

A.(i-1)*n+jB.(i-1)*n+j-1C.i*(j-1)D.j*m+i-1

(4)数组A[0..4,-1..-3,5..7]中含有元素的个数()。

A.55B.45C.36D.16

(5)广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为()。

Head(Tail(Head(Tail(Tail(A)))))

A.(g)B.(d)C.cD.d

(6)广义表运算式Tail(((a,b),(c,d)))的操作结果是()。

A.(c,d)B.c,dC.((c,d))D.d

(7)广义表((a,b,c,d))的表头是(),表尾是()。

A.aB.()C.(a,b,c,d)D.(b,c,d)

2、填空题

(1)设广义表L=((),()),则head(L)是

(1)___;tail(L)是

(2)__;L的长度是(3)_;深度是(4)__。

(2)已知广义表A=(9,7,(8,10,(99)),12),试用求表头和表尾的操作Head()和Tail()将原子元素99从A中取出来。

(3)广义表的深度是__。

(4)广义表(a,(a,b),d,e,((i,j),k))的长度是,深度是_。

(5)已知广义表LS=(a,(b,c,d),e),运用head和tail函数取出LS中原子b的运算是_____。

(6)广义表A=(((a,b),(c,d,e))),取出A中的原子e的操作是:

___。

第五章树形结构

知识点:

1、树的概念、根、度、兄弟、路径、叶子、孩子、双亲、高度、深度、层数;根据一棵树,能够知道它的度、根节点、叶子结点、深度等;根据树中的某个结点,可以找出它的孩子结点;

2、二叉树的概念、性质和几种特殊形态的二叉树及其特点:

斜树、满二叉树、完全二叉树

3、二叉树的存储(顺序存储,适合完全二叉树;链式存储)

4、二叉树的遍历及其应用(先根、中根和后根遍历)

5、二叉树的双序列生成(先根和中根或者中根和后根生成二叉树)

6、树和森林的概念、树和森林与二叉树的相互转换方法、以及转换的二叉树的特点,树和森林的遍历

7、哈弗曼编码的概念和哈弗曼树的构造

题目

1、选择题

(1)已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为()

A.-A+B*C/DEB.-A+B*CD/EC.-+*ABC/DED.-+A*BC/DE

(2)设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1则T中的叶子数为()

A.5B.6C.7D.8

(3)在下述结论中,正确的是()

①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③B.②③④C.②④D.①④

(4)设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是()

A.m-nB.m-n-1C.n+1D.条件不足,无法确定

(5)若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()

A.9B.11C.15D.不确定

(6)在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为()个

A.4B.5C.6D.7

(7)设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。

与森林F对应的二叉树根结点的右子树上的结点个数是()。

A.M1B.M1+M2C.M3D.M2+M3

(8)具有10个叶结点的二叉树中有()个度为2的结点,

A.8B.9C.10D.ll

(9)一棵完全二叉树上有1001个结点,其中叶子结点的个数是()

A.250B.500C.254D.505E.以上答案都不对

(10)设给定权值总数有n个,其哈夫曼树的结点总数为()

A.不确定B.2nC.2n+1D.2n-1

(11)有关二叉树下列说法正确的是()

A.二叉树的度为2B.一棵二叉树的度可以小于2

C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为2

(12)二叉树的第I层上最多含有结点数为()

A.2IB.2I-1-1C.2I-1D.2I-1

(13)一个具有1025个结点的二叉树的高h为()

A.11B.10C.11至1025之间D.10至1024之间

(14)一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有()结点

A.2hB.2h-1C.2h+1D.h+1

(15)在一棵高度为k的满二叉树中,结点总数为()

A.2k-1B.2kC.2k-1D.log2k+1

(16)一棵树高为K的完全二叉树至少有()个结点

A.2k–1B.2k-1–1C.2k-1D.2k

(17)一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是()

A.CABDEFGB.ABCDEFGC.DACEFBGD.ADCFEG

(18)已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。

A.CBEFDAB.FEDCBAC.CBEDFAD.不定

(19)某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E则前序序列是:

()

A.E,G,F,A,C,D,BB.E,A,C,B,D,G,FC.E,A,G,C,F,B,DD.上面的都不对

(20)二叉树的先序遍历和中序遍历如下:

先序遍历:

EFHIGJK;中序遍历:

HFIEJKG。

该二叉树根的右子树的根是:

()

A、EB、F C、G D、H

2、填空题

(1)二叉树由_

(1)__,__

(2)_,_(3)__三个基本单元组成。

(2)具有256个结点的完全二叉树的深度为______。

(3)深度为k的完全二叉树至少有___

(1)___个结点,至多有___

(2)____个结点。

(4)深度为H的完全二叉树至少有_

(1)___个结点;至多有_

(2)___个结点;H和结点总数N之间的关系是(3)。

(5)假设根结点的层数为1,具有n个结点的二叉树的最大高度是____。

(6)在一棵二叉树中,度为零的结点的个数为N0,度为2的结点的个数为N2,则有N0=______

(7)高度为K的完全二叉树至少有_____个叶子结点。

(8)高度为8的完全二叉树至少有_____个叶子结点。

(9)已知二叉树有50个叶子结点,则该二叉树的总结点数至少是______。

(10)层完全二叉树至少有_____个结点,拥有100个结点的完全二叉树的最大层数为______。

3、应用题

(1)树所有结点的度数之和与结点数有何关系?

与边数有何关系?

二叉树(或者树中),度为0的结点数与度不为0的结点树有何关系?

(2)已知一棵二叉树的对称序和后序序列如下:

中序:

GLDHBEIACJFK后序:

LGHDIEBJKFCA

(1)出这棵二叉树,并写出该二叉树的先序序列:

(2)写出这棵二叉树的根节点、叶子节点、度为1的节点、度为2的节点

(3)转换为对应的森林:

(3)从概念上讲,树,森林和二叉树是三种不同的数据结构,将树,森林转化为二叉树的基本目的是什么,并指出树和二叉树的主要区别。

(4)二叉树的遍历算法及其应用,如求叶子结点数、度为1的结点数、度为2的结点数,交换二叉树的左右子树、判断两棵二叉树是否等价等。

第6章图

知识点

1、图的概念:

有向图、无向图、完全图、连通图、强连通图、邻接点、顶点的度、出度、入度、路径

2、图的存储:

有向图和无向图的邻接矩阵存储和邻接表存储,及其特点

3、图的深度优点遍历和广度优先遍历

4、生成树、最小生成树,Prim和Kruskal算法

5、有向无环图的应用:

拓扑排序和关键路径(课件例题)

习题

1、选择题

(1)图中有关路径的定义是()。

A.由顶点和相邻顶点序偶构成的边所形成的序列B.由不同顶点所形成的序列

C.由不同边所形成的序列D.上述定义都不是

(2)设无向图的顶点个数为n,则该图最多有()条边。

A.n-1B.n(n-1)/2C.n(n+1)/2D.0E.n2

(3)一个n个顶点的连通无向图,其边的个数至少为()。

A.n-1B.nC.n+1D.nlogn;

(4)要连通具有n个顶点的有向图,至少需要()条边。

A.n-lB.nC.n+lD.2n

(5)n个结点的完全有向图含有边的数目( )。

A.n*nB.n(n+1)C.n/2D.n*(n-l)

(6)一个有n个结点的图,最少有()个连通分量,最多有()个连通分量。

A.0B.1C.n-1D.n

(7)在一个无向图中,所有顶点的度数之和等于所有边数()倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的()倍。

A.1/2B.2C.1D.4

(8)下列哪一种图的邻接矩阵是对称矩阵?

()

A.有向图B.无向图C.AOV网D.AOE网

(9)下列说法不正确的是()。

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次C.图的深度遍历不适用于有向图

B.遍历的基本算法有两种:

深度遍历和广度遍历D.图的深度遍历是一个递归过程

(10)下面哪一方法可以判断出一个有向图是否有环(回路):

()

A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径

(11)已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},

E={,,,,,,,,},G的拓扑序列是()。

A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7

C.V1,V3,V4,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V7

(12)在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是()。

A.G中有弧B.G中有一条从Vi到Vj的路径

C.G中没有弧D.G中有一条从Vj到Vi的路径

(13)关键路径是事件结点网络中()。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径

C.最长回路D.最短回路

(14)下面关于求关键路径的说法不正确的是()。

A.求关键路径是以拓扑排序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1