数据结构考试题和知识点共享

文章介绍了学习数据结构的重要性,它关乎代码效率和解决问题的方法。逻辑结构包括线性、层次和网状结构,而存储结构涉及顺序、链式、索引和散列存储。线性表的特性是一对一关系,顺序表和链表各有优劣。此外,文章还涵盖了一些基础的算法问题和数据结构应用,如栈和队列的操作,以及二叉树的遍历等。

一,为什么学习数据结构

1、c语言学习的时如何写代码、数据结构教会我们如何高效简介的写代码。

2、实现一个功能、写代码解决什么问题?

1》数据与数据之间的逻辑规律和数据在计算机中如何表示(存储)

数据结构:数据的逻辑结构存储结构及操作

数据:不只是一个单独的数值、是一个集合的概念。

2》解决问题的方法(实现代码的逻辑思想)

算法

数据结构+算法=程序

 二,逻辑结构

(1)概念:描述数据之间的逻辑规律和联系 (元素与元素之间的关系)

(2)逻辑结构的分类:

1.线性结构 ---》线性存储--》一对一的关系 ---》顺序表、链表

头节点无前驱、尾节点无后继

2.层次结构 --》树 ---》一对多的关系 --》树

根节点无前驱,叶子节点无后继

3.网状结构 --》图 ---》多对多的关系 ---》图

4, 存储结构

(1)概念:数据的逻辑结构在计算机中的具体实现

(2)存储结构分类:

1.顺序存储:内存空间开辟是连续

数组:内存空间连续开辟,数据元素类型相同

2.链式存储:通过地址将数据元素联系在一起

3.索引存储:通过索引表找到数据元素存放位置,拿到数据

存在两个表格--》索引表 和 数据表

书名---》数据表中查寻书的位置

4.散列存储结构 (哈希存储)

数据元素的存放和位置之间存在一个关系。

存在一个关键字key和一个关系函数,通过关键值key带入关系函数计算出数据存放的位置。对应位置存放、对应位置取值。

5,顺序表和链表的相同点和不同点有哪些?

相同点: 都是线性表 逻辑结构:线性结构 一对一

不同点:

(1)顺序表存储结构是顺序存储,内存当中存储是连续的 链表是链式存储,通过指针将节点联系到一起,内存上存储不连续

(2)顺序表(数组)长度固定,链表不固定

(3)顺序表查找方便,但是插入和删除麻烦,链表插入和删除方便,但是查找麻烦

4. 线性表的特征是什么?

线性表: 顺序表 链表 栈(顺序栈和链式栈) 队列(顺序队列也叫循环队列和链式队列)

线性表的特征:一对一,每个节点最多有一个前驱和一个后继(首尾节点除外)

(1)若进栈顺序为 1,2,3,4 一下四种情况不可能出现的出栈序列是( C ) 

   A.  1,4,3,2   
   B.  2,3,4,1    
   C.  3,1,4,2
   D.  3,4,2,1

2. 下列叙述正确的是( A)

A. 线性表是线性结构B. 栈与队列是非线性结构C. 线性链表是非线性结D. 二叉树是线性结构

3.下列不属于描述数据逻辑结构的是(d)
a)线性表
b)树
c)图d)链表

4.数据结构包含的内容不包括(d)
a)线性结构
b)存储结构
c)逻辑结构d)数据运算

5.下列关于存储结构和逻辑结构描述正确的是(d)
a)存储结构和程序具体实现的语言没有关系b)算法的实现需要考虑逻辑结构
C)逻辑结构就是实际存储的结构d)算法的实现依赖于存储结构

6.一个算法的时间复杂度为T(n)= 2n13+3n^2+4n+5n^4+2,则该T(n)应记为(d)
a)O(n)
b)O(n12)c)O(n^3)d)O(n^4)

7.二叉树的第k层最多有几个节点(d)
a)2^k-1
b)2^k+1c)2k+1d)2^(k-1)

8.设指针变量p指向单链表中节点A,若删除单链表中的节点A,则需要修改指针的操作顺序为(a)
a)q= p->next,p->data = q->data;p-znext = q ->next,free(q);) b)q= p->next,q->data = p->data,p->next = q->next,free(q);c)q=p->next,p->next = q->next,free(q);
d)q = p->nextp->data = q->data;free(q);

9.—个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是(c)
a)edcba
b)decba

c)dceab

d)abcde

10.队和——般线性表区别主要在(d)
a)元素个数
b)元素类型
c)逻辑结构
d)插入、删除元素的位置
11.约瑟夫环问题中,有n个人,从第k个人数,数到第m个人出列,若n = 8,k= 3 m= 4,则正确的出队序列为:(a)
a)62743518b)62751843c)62734518d)62734518
12.顺序栈和链式栈的主要区别是(b)
a)逻辑结构不同
b)存储结构不同c)数据类型不同d数据存取方式不同
13.深度为k的完全二叉树中,最少有(b)个节点
a)2^(k-1)-1
b)2^(k-1)

c)2^(k-1)+1

d)2^k-1
14.对于二叉树的遍历算法,下面描述正确的是(a)
a)void pre_order(bitree* r

oot){ printf("%d ",root->data); pre_order(root->lchild);pre_order(root->rchild);
b)void in_order(bitree* root){ in_order(root->Ichild); in_order(root->rchild); printf("%d ",root->data);
c)void post_order(bitree* root){ post_order(root->lchild); printf("%d ",root->data);post_order(root->rchild);
d)void in_order(bitree* root){ printf("%d ",root->data); in_order(root->lchild); in_order(root->rchild);
15.光断有头单诞表head为空的条件是(b)
a)Head == NULL;
b)Head->next == NULL;
c)Head->next != NULL;
d)Head != NULL;
16.陈奕迅有首歌叫十年,吕珊有首歌叫3650夜.那现在问,十年不可能有多少天?(a)
a)3650
b)3651c)3652d)3653






 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值