2012年安徽省数据结构(C++)必过技巧

合集下载

数据结构高分笔记

数据结构高分笔记
1.3 数据结构和算法的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . .14 1.3.1 数据结构的基本概念. . . . . . . . . . . . . . . . . . . . . . . . .14 1.3.2 算法的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . .15
本书讨论群:15945769
本书特点:
作者 qq:39826407
(1)精心挑选出适合考研的习题,并配上通俗易懂的答案供你自测和练习。
(2)总结出考研必备知识点,并且帮你把其中过于专业过于严谨的表述翻译成通俗易 懂的语言。
(3)针对于近年数据结构大题的出题风格(比如算法设计题目中的三段式题目:1.表 述算法思想。2.写出算法描述。3.计算算法的时间和空间复杂度),设计了独特的真题仿 造部分,让你在复习的过程中逐渐养成适合解决考研类型题目的习惯。
第三章 栈、队列和数组. . . . . . . . . . . . . . . . . . . . . . . ..54
3.1 栈和队列的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . ..54 3.1.1 栈的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . ...54 3.1.2 队列的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . .54
接下来我详细讲解一下这本辅导书书的写作过程,请看下图:
本书讨论群:15945769
作者 qq:39826407

数据结构真题2012年10月

数据结构真题2012年10月

数据结构真题2012年10月(总分:100.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.一个算法的时间耗费的数量级称为该算法的______(分数:2.00)A.效率B.难度C.可实现性D.时间复杂度√解析:[考点] 算法的时间复杂度的概念[解析] 一个算法的时间耗费的数量级称为该算法的时间复杂度。

2.顺序表便于______(分数:2.00)A.插入结点B.删除结点C.按值查找结点D.按序号查找结点√解析:[考点] 顺序表的特征[解析] 顺序表便于按序号查找结点。

3.设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是______(分数:2.00)A.p->next->next==headB.p->next==head √C.p->next->next==NULLD.p->next==NULL解析:[考点] 指针变量p指向尾结点的判定条件[解析] 单循环链表的指针变量p指向尾结点的判定条件是p->next==head。

4.设以数组A[0..m-1]存放循环队列,front指向队头元素,rear指向队尾元素的下一个位置,则当前队列中的元素个数为______(分数:2.00)A.(rear-front+m)%m √B.rear-front+1C.(front-rear+m)%mD.(rear-front)%m解析:[考点] 队列中元素个数的计算[解析] 队列中元素的个数为(rear-front+m)%m5.下列关于顺序栈的叙述中,正确的是______(分数:2.00)A.入栈操作需要判断栈满,出栈操作需要判断栈空√B.入栈操作不需要判断栈满,出栈操作需要判断栈空C.入栈操作需要判断栈满,出栈操作不需要判断栈空D.入栈操作不需要判断栈满,出栈操作不需要判断栈空解析:[考点] 顺序栈的性质的判断[解析] 入栈操作需要判断栈满,出栈操作需要判断栈空。

6.A是一个10×10的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a 0,0的存储地址为1,每个元素占一个存储单元,则a 7,5的地址为______(分数:2.00)A.25B.26C.33D.34 √解析:[考点] 对称矩阵的元素的地址的计算[解析] 若对称矩阵采用下三角压缩存储,根据其地址的计算公式,可得到所求元素的地址。

安徽省专升本考试数据结构真题

安徽省专升本考试数据结构真题

安徽省专升本考试数据结构真题一、判断题(每小题1分,共5分)1.算法的执行时间和所需的存储空间都是问题规模的函数,进行算法分析就是要找出这种函数关系。

()2.完全二叉树只能采用顺序存储方法,不能采用链表存储方法。

()3.在顺序循环队列的第i个元素之后插入一个元素是顺序循环队列的基本运算。

()4.若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历的最后一个结点。

()5.直接插入排序的关键码比较次数与初始排列有关。

()二、单项选择题(每小题2分,共10分)1.以下数据结构中哪一个是线性结构()A.栈B.线索二叉树C.AOV网D.二叉排序树2.若有a,b,c三个字符的字符序列执行入栈操作,则其所有可能的输出排列共有()A.4种B.5种C.6种D.其它3.一棵树的广义表表示为a(b,c(e,f(g)),d),当用左孩子—右兄弟链表表示时,右指针域非空的节点个数为()A.1B.2C.3D.44.下面关于图的存储的叙述中正确的是()A.用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关B.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关。

C.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关。

D.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关。

5.对长度为12的有序表采用顺序存储结构,折半查找技术,在等概率情况下,查找成功的平均查找长度是( )A.37/12B.62/13C.49/12D.其它 三、应用题(每小题5分,共20分)1、已知一棵三叉树的存储结构如下表所示,其中root=0,n=7。

画出该二叉树。

2、用克鲁斯卡尔算法求下图的最小生成树。

data3、下图是一棵二叉排序树,规定当二叉排序树被删除的结点既有左子树,又有右子树时,以其中序前驱替代。

画出删除55后的二叉排序树。

4、已知散列表地址空间为HT[0..8],散列函数为H(key)=key%7,采用线性探测法处理冲突,将数据序列{107,27,28,42,3,25,99,38}依次存入散列表中。

数据结构(C语言版)第1章 绪论

数据结构(C语言版)第1章  绪论
数据结构(Data Structures) 数据结构
(C语言版 语言版) 语言版
主讲教师: 吴让仲 主讲教师:
Instructor: WU, RANGZHONG E-mail: wurangzhong@
1/68
教材 (Text Book) 数据结构(C语言版 数据结构 语言版) 语言版
17/68
逻辑结构的分类
数据的逻辑结构是本质,可以分为: 数据的逻辑结构是本质,可以分为: 线性结构和 线性结构和非线性结构 也可以分为 集合 结构中的数据元素除了同属于一种类型外,别无 结构中的数据元素除了同属于一种类型外, 其它关系. 其它关系. 线性结构 结构中的数据元素之间存在一对一的关系. 结构中的数据元素之间存在一对一的关系. 树型结构 结构中的数据元素之间存在一对多的关系. 结构中的数据元素之间存在一对多的关系. 图状结构或网状结构 结构中的数据元素之间存在多对 多的关系. 多的关系.
数据结构发展简史
作为独立课程国外1968年开始设立. 作为独立课程国外1968年开始设立. 1968年开始设立 1968年美国KNUTH教授开创了数据结构的最初 1968年美国KNUTH教授开创了数据结构的最初 年美国KNUTH 体系. 体系. 计算机专业的专业基础课. 计算机专业的专业基础课. 非计算机专业的主要选修课. 非计算机专业的主要选修课.
25/68
数据结构课程的内容
数据结构是介于数学,计算机硬件和计算机软 数据结构是介于数学,计算机硬件和 数学 件之间的一门计算机科学与技术专业的核心课 是编译原理,操作系统,数据库, 程,是编译原理,操作系统,数据库,人工智 能等课程的基础.同时,数据结构技术也广泛 能等课程的基础.同时, 应用于信息科学,系统工程, 应用于信息科学,系统工程,应用数学以及各 信息科学 种工程技术领域. 种工程技术领域. 数据结构课程的先修课程有高级语言程序设计 和离散数学. 和离散数学

安徽公务员考试计算机专业试题(必做)

安徽公务员考试计算机专业试题(必做)

安徽公务员考试计算机专业试题(必做)安徽公务员考试计算机专业课试题(必做)一、考试说明1. 考试设置计算机专业课试卷分为客观题和主观题两部分,总分100分,考试时间为120分钟2. 考试要求通过本考试的合格人员应能符合安徽省公务员计算机岗位的要求,掌握计算机的基础知识,熟练使用Windows操作系统和常用办公软件,具备一定的算法程序设计能力,熟悉计算机网络技术及其简单应用,熟练掌握数据库的基本原理和日常应用,具备一定的软件工程知识。

二、考试题型主要有:单项选择题、多项选择题、填空题、判断题、简答题、程序算法设计题。

三、考试范围1. 知识架构第一部分计算机科学技术基础计算机基础知识、多媒体技术、计算机信息安全技术、Internet 知识。

第二部分计算机软件及应用Windows 2000/xp操作系统、Word 2003、Excel 2003、C语言程序设计。

第三部分计算机理论关系数据库理论、网络技术基础、数据结构、软件工程基础2. 分值分布计算机基础25分左右计算机软件15分左右计算机网络20分左右C语言及算法数据结构20分左右数据库理论15分左右软件工程5分左右第一部分计算机科学技术基础(识记)知识纲要:计算机基础知识、多媒体技术、计算机信息安全技术、Internet知识。

第一章计算机基础知识一、计算机的特点、分类及其应用二、信息编码与数据表示,数制及其转换三、计算机硬件系统的组成及其基本工作原理四、计算机软件系统的组成,系统软件和应用软件的基本概念、功能和分类五、软件基础知识,计算机程度设计语言的基本概念第二章多媒体技术一、多媒体的基本概念及关键技术二、多媒体计算机及设备三、多媒体技术及其应用第三章计算机信息安全技术一、信息安全的相关概念与技术二、计算机病毒的定义、特性、结构及分类三、计算机病毒的检测与防治四、计算机木马的特征及其与病毒的区别第四章Internet知识一、计算机网络的功能、结构、分类和使用方式二、Internet的基础知识、网址与域名系统、TCP/IP协议三、Internet的连接与服务功能四、WWW与浏览器的应用五、Internet和Extranet六、流行的Internet应用例如:BT下载(是一个最新概念Peer to Peer,P2P 的下载工具、它采用了多点对多点的原理,人人电脑都是服务器的思想,下载的人越多,共享的人越多,下载的速度也越快。

数据结构的常用算法

数据结构的常用算法

数据结构的常用算法一、排序算法排序算法是数据结构中最基本、最常用的算法之一。

常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。

1. 冒泡排序冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,如果它们的顺序错误就将它们交换过来。

通过多次的比较和交换,最大(或最小)的元素会逐渐“浮”到数列的顶端,从而实现排序。

2. 选择排序选择排序是一种简单直观的排序算法,它每次从待排序的数据中选择最小(或最大)的元素,放到已排序序列的末尾,直到全部元素排序完毕。

3. 插入排序插入排序是一种简单直观的排序算法,它将待排序的数据分为已排序区和未排序区,每次从未排序区中取出一个元素,插入到已排序区的合适位置,直到全部元素排序完毕。

4. 快速排序快速排序是一种常用的排序算法,它采用分治的思想,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按此方法对这两部分数据进行快速排序,递归地进行,最终实现整个序列有序。

5. 归并排序归并排序是一种稳定的排序算法,它采用分治的思想,将待排序的数据分成若干个子序列,分别进行排序,然后将排好序的子序列合并成更大的有序序列,直到最终整个序列有序。

二、查找算法查找算法是在数据结构中根据给定的某个值,在数据集合中找出目标元素的算法。

常见的查找算法有线性查找、二分查找、哈希查找等。

1. 线性查找线性查找是一种简单直观的查找算法,它从数据集合的第一个元素开始,依次比较每个元素,直到找到目标元素或遍历完整个数据集合。

2. 二分查找二分查找是一种高效的查找算法,它要求数据集合必须是有序的。

通过不断地将数据集合分成两半,将目标元素与中间元素比较,从而缩小查找范围,最终找到目标元素或确定目标元素不存在。

3. 哈希查找哈希查找是一种基于哈希表的查找算法,它通过利用哈希函数将目标元素映射到哈希表中的某个位置,从而快速地找到目标元素。

三、图算法图算法是解决图结构中相关问题的算法。

数据结构2011--2012学年试题

数据结构2011--2012学年试题

2011年——2012年第二学期《数据结构》期末试卷(A)一、选择题:(每小题2分,共30分)1、如果在表示树的孩子兄弟链中有6个空的左指针域,7个空的右指针域,5个结点左、右指针域都为空,则该树中树叶的个数( B )A、有7个B、有6个C、有5个D、不能确定2、数据结构是一门研究( B )的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。

A、数值计算B、非数值计算C、混合计算D、简单计算3、如果用孩子兄弟链来表示一棵具有n(n>1)个结点的树,则在二叉链表中( B )A、至少有n-1个非空的右指针域B、至少有2个空的右指针域C、至少有2个非空的左指针域D、至少有n-1个空的右指针值域4、数据结构在计算机内存中的表示是指( A )。

A、数据的存储结构B、数据结构C、数据的逻辑结构D、数据元素之间的关系5、计算机处理的对象之间通常存在着的一种最简单的线性关系,这类数学模型称( A )。

A、线性的数据结构B、图的数据结构C、格局D、树型数据结构6、算法的主要任务是分析( D )A、算法是否具有较好的可读性B、算法中是否存在语法错误C、算法的功能是否符合设计要求D、算法执行时间和问题规模之间的关系7、用孩子链存储结构表示树,其优点之一是( D )比较方便A、判断两个指定结点是不是兄弟B、找指定的结点双亲C、判断指定结点在第几层D、计算指定结点的度数8、线性表采用链式存储结构时,其地址( D )A、必须是连续的B、一定是不连续的C、部分地址必须是连续的D、连续与否均可以9、在一个单链表中,删除*p结点之后的一个结点操作是( D )A、p next=p;B、p next next=p next;C、p next next=p;D、p next=p next next;10、栈和队列的共同点是( C )A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点11、元素ABCD依次进栈后,栈顶元素是( D )栈底元素是(A )A、AB、BC、CD、D12、串是( D )A、不少于一个字母的序列B、任意个字母的序列C、不少于一个字符的序列D、有限个字符的序列13、串是一种特殊的线性体现在( B )A、可以顺序存储B、数据元素是一个字符C、可以链接存储D、数据元素可以是多个字符14、对于一棵具有n个结点,度为4的树来说,( A )。

《数据结构(C语言版 第2版)》(严蔚敏 著)第三章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第三章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)第三章练习题答案第3章栈和队列1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。

A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1答案:C解释:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。

(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。

A.i B.n-i C.n-i+1 D.不确定答案:C解释:栈是后进先出的线性表,一个栈的入栈序列是1,2,3,…,n,而输出序列的第一个元素为n,说明1,2,3,…,n一次性全部进栈,再进行输出,所以p1=n,p2=n-1,…,pi=n-i+1。

(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。

A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n答案:D解释:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。

(4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。

A.x=top->data;top=top->link;B.top=top->link;x=top->link;C.x=top;top=top->link;D.x=top->link;答案:A解释:x=top->data将结点的值保存到x中,top=top->link栈顶指针指向栈顶下一结点,即摘除栈顶结点。

2012年数据结构期末考试题及答案

2012年数据结构期末考试题及答案

2012年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构B.数据结构C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是 D 。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。

(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2)。

s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是O(n*m)。

for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是O(log3n)。

i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。

A.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。

(完整word版)数据结构(c语言版)课后习题答案完整版资料

(完整word版)数据结构(c语言版)课后习题答案完整版资料

第1章绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。

(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n—1+n—2+……+1= n(n—1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题babadbcabdcddac2.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

ElemType Max (LinkList L ){if(L—〉next==NULL) return NULL;pmax=L-〉next;//假定第一个结点中数据具有最大值p=L-〉next—>next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax—>data) pmax=p;p=p->next;}return pmax-〉data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间.void inverse(LinkList &L) {// 逆置带头结点的单链表Lp=L-〉next;L->next=NULL;while (p){q=p—>next;// q指向*p的后继p->next=L—>next;L—>next=p; // *p插入在头结点之后p = q;}}(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素.[题目分析]在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。

本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。

因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。

数据结构c语言版(题目)

数据结构c语言版(题目)

分类:编程思想和算法2012-09-15 22:24 1759 人阅读评论(0)收藏举报如果TCPhashlistJuli 采用线性表的顺序存储结构,则可以随机存取表中任一终端,但插入和删除终端时,需要移动大量元素,巧妙地终端离线不进行删除操作。

数组,存储的元素应该是线性表顺序存储结构的数据结构。

线性表题目类型:线性表在顺序结构上各种操作的实现;线性链表的各种操作;两个或多个线性表的各种操作;循环链表和双向链表;稀疏多项式及其运算在线性表的两种存储结构上的实现。

线性表在顺序结构上各种操作的实现题目1:(线性表顺序存储结构上的操作—Delete )从顺序存储结构的线性表a 中删除第i个元素起的k个元素。

(《数据结构题集C语言版》P16)题目2:(线性表顺序存储结构上的操作_lnsert )设顺序表va中的数据元素递增有序。

试写一算法,将x插入到循序表的适当位置上,以保持该表的有序性。

(《数据结构题集C语言版》P17)题目3:(线性表顺序存储结构上的操作_逆置)试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表逆置。

(《数据结构题集C语言版》2.21)线性表线性链表的各种操作题目1:( Insert )试写一算法,在无头结点的动态单链表上实现线性表的Insert(L,i,b), 并和在带头结点的动态单链表上实现同样操作的算法进行比较。

(《数据结构题集C语音版》P17)题目2:(Delete )同上题要求,实现线性表操作Delete(L,i).题目3:已知线性表中的元素以值递增有序排序,并以单链表作为存储结构。

试写一高效算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素)同时释放被删除结点空间,并分析你的算法的事件复杂度(注意:mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。

(《数据结构题集C语言版》P17)题目4:同上题条件,试写一高效算法,删除表中所有值相同的多余元素(使得操作后的线性表所有元素的值均不相同),同是释放被删结点空间,并分析你算法的时间复杂度。

数据结构(C语言版)知识点复习资料

数据结构(C语言版)知识点复习资料

数据结构复习资料一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。

2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11. 一个算法的效率可分为时间效率和空间效率。

12. 在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

13. 线性表中结点的集合是有限的,结点间的关系是一对一的。

14. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1 个元素。

15. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动 n-i 个元素。

16. 在顺序表中访问任意一结点的时间复杂度均为 O(1) ,因此,顺序表也称为随机存取的数据结构。

17. 顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

18.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

2012年1月数据结构导论试题与答案

2012年1月数据结构导论试题与答案

全国2012年1月高等教育自学考试数据结构导论试题课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.结点按逻辑关系依次排列形成一条“锁链”的数据结构是( )A.集合B.线性结构C.树形结构D.图状结构2.下面算法程序段的时间复杂度为( )for ( int i=0; i<m; i++)for ( int j=0; j<n; j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(mn)D. O(m+n)3.线性结构是( )A.具有n(n≥0)个表元素的有穷序列B.具有n(n≥0)个字符的有穷序列C.具有n(n≥0)个结点的有穷序列D.具有n(n≥0)个数据项的有穷序列4.单链表中删除由某个指针变量指向的结点的直接后继,该算法的时间复杂度是( )A. O(1)C. O(log2n)D. O(n)5.关于串的叙述,正确的是( )A.串是含有一个或多个字符的有穷序列B.空串是只含有空格字符的串C.空串是含有零个字符或含有空格字符的串D.串是含有零个或多个字符的有穷序列6.栈的输入序列依次为1,2,3,4,则不可能的出栈序列是( )A.1243B. 1432C. 2134D.43127.队列是( )A. 先进先出的线性表B. 先进后出的线性表C. 后进先出的线性表D.随意进出的线性表8.10阶上三角矩阵压缩存储时需存储的元素个数为( )A.11B.56C.100D.1019.深度为k(k≥1)的二叉树,结点数最多有( )A.2k个B.(2k -1)个C.2k-1个D.(2k+1)个10.具有12个结点的二叉树的二叉链表存储结构中,空链域NULL的个数为( )A. 11B.13C. 23D. 2511.具有n个顶点的无向图的边数最多为( )A.n+1B.n(n+1)C.n(n-1)/2D.2n(n+1)12.三个顶点v1,v2,v3的图的邻接矩阵为010001010⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦,该图中顶点v3的入度为( )A. 0B. 1C. 2D. 313.顺序存储的表格中有60000个元素,已按关键字值升序排列,假定对每个元素进行查找的概率是相同的,且每个元素的关键字值不相同。

数据结构(C 版)王红梅_版课后答案

数据结构(C  版)王红梅_版课后答案

数据结构(C++版)王红梅_版课后答案.txt如果你同时爱几个人,说明你年轻;如果你只爱一个人,那么,你已经老了;如果你谁也不爱,你已获得重生。

积极的人一定有一个坚持的习惯。

第 1 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。

⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。

【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。

【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。

【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

数据结构(C语言版)第3章 栈和队列

数据结构(C语言版)第3章 栈和队列

typedef struct StackNode {
SElemType data;
S
栈顶
struct StackNode *next;
} StackNode, *LinkStack;
LinkStack S;

栈底
链栈的初始化
S

void InitStack(LinkStack &S ) { S=NULL; }
top
C
B
base A
--S.top; e=*S.top;
取顺序栈栈顶元素
(1) 判断是否空栈,若空则返回错误 (2) 否则通过栈顶指针获取栈顶元素
top C B base A
Status GetTop( SqStack S, SElemType &e) { if( S.top == S.base ) return ERROR; // 栈空 e = *( S.top – 1 ); return OK; e = *( S.top -- ); ??? }
目 录 导 航
Contents
3.1 3.2 3.3 3.4 3.5
栈和队列的定义和特点 案例引入 栈的表示和操作的实现 栈与递归 队列的的表示和操作的实现
3.6
案例分析与实现
3.2 案例引入
案例3.1 :一元多项式的运算
案例3.2:号匹配的检验
案例3.3 :表达式求值
案例3.4 :舞伴问题
目 录 导 航
top B base A
清空顺序栈
Status ClearStack( SqStack S ) { if( S.base ) S.top = S.base; return OK; }

C语言版数据结构知识点汇总

C语言版数据结构知识点汇总

C语言版数据结构知识点汇总C语言是一种强大的编程语言,广泛应用于数据结构与算法的实现。

掌握C语言版数据结构的知识可以帮助开发人员更好地理解和设计高效的程序。

下面是C语言版数据结构的一些重要知识点的汇总:1. 数组(Array):数组是一种基本的数据结构,用于存储一系列相同类型的元素。

在C语言中,数组是通过下标来访问元素的,数组下标从0开始计数。

2. 链表(Linked List):链表是一种动态数据结构,不需要连续的内存空间。

链表由一系列结点组成,每个结点包含数据和指向下一个结点的指针。

常见的链表有单向链表、双向链表和循环链表。

3. 栈(Stack):栈是一种先进后出(LIFO)的数据结构,只能在末尾进行插入和删除操作。

在C语言中,栈可以用数组或链表来实现。

栈常用于表达式求值、函数调用和递归等场景。

4. 队列(Queue):队列是一种先进先出(FIFO)的数据结构,只能在一端进行插入操作,另一端进行删除操作。

在C语言中,队列可以用数组或链表来实现。

队列常用于广度优先和任务调度等场景。

5. 树(Tree):树是一种非线性的数据结构,由一系列的结点组成,每个结点可以有多个子结点。

树的一些重要特点包括根结点、父结点、子结点、叶子结点和深度等。

常见的树结构有二叉树和二叉树。

6. 图(Graph):图是一种非线性的数据结构,由一组顶点和一组边组成。

图的一些重要概念包括顶点的度、路径、连通性和环等。

图有多种表示方法,包括邻接矩阵和邻接表。

7.查找算法:查找算法用于在数据集中查找特定元素或确定元素是否存在。

常见的查找算法有顺序查找、二分查找和哈希查找。

在C语言中,可以使用数组、链表和树来实现不同的查找算法。

8.排序算法:排序算法用于将数据集中的元素按照特定的顺序进行排列。

常见的排序算法有冒泡排序、插入排序、选择排序、快速排序和归并排序等。

排序算法的选择取决于数据规模、时间复杂度和稳定性等因素。

9. 堆(Heap):堆是一种特殊的树结构,具有如下特点:完全二叉树、最大堆或最小堆的性质。

数据结构(C语言版)(第2版)课后习题答案

数据结构(C语言版)(第2版)课后习题答案

精品文档考试教学资料施工组织设计方案数据结构(C语言版)(第2版)课后习题答案李冬梅2015.3目录第1章绪论 (1)第2章线性表 (5)第3章栈和队列 (13)第4章串、数组和广义表 (26)第5章树和二叉树 (33)第6章图 (42)第7章查找 (54)第8章排序 (65)第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。

如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。

数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。

在有些情况下,数据元素也称为元素、结点、记录等。

数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。

数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。

例如,学生基本信息表中的学号、姓名、性别等都是数据项。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。

逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

存储结构:数据对象在计算机中的存储表示,也称为物理结构。

抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。

具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。

2012数据结构题资料

2012数据结构题资料

●__(4)__的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。

(4)A.树形存储结构B.链式存储结构C.索引存储结构D.散列存储结构●若循环队列以数组 Q[O..m-1] 作为其存储结构变量 rear 表示循环队列中队尾元素的实际位置,其移动按 rear=(rear+1) mod m 进行,变量 length 表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是__(5)__。

(5)A.rear-length B.(rear-length+m) mod mC.(1+rear+m-length) mod m D.m-length●一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有__(6)__个零元素。

(6)A.e B.2e C.n2-e D.n2-2e●若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为__(7)__。

(7)A.4 B.5 C.6 D.7●若采用邻接矩阵来存储简单有向图,则其某一个顶点i的入度等于该矩阵__(8)__。

(8)A.第i行中值为1的元素个数 B.所有值为1的元素总数C.第i行及第i列中值为1的元素总个数D.第i列中值为1的元素个数●在—棵度为3的树中,若有2个度为3的结点,有1个度为2的结点,则有__(9)__个度为0的结点。

(9)A.4 B.5 C.6 D.7●设结点x和y是二叉树中任意的两个结点,在该二叉树的先根遍历序列中x在y之前,而在其后根遍历序列中x在y之后,则x和y的关系是__(10)__。

(10)A.x是y的左兄弟B.x是y的右兄弟C.x是y的祖先D.x是y的后裔●设顺序存储的某线性表共有123个元素,按分块查找的要求等分为3块。

若对索引表采用顺序查找方法来确定子块,且在确定的子块中也采用顺序查找方法,则在等概率的情况下,分块查找成功的平均查找长度为__(11)__。

(11)A.21 B.23 C.41 D.62DCDBDCCB(顺序查找平均查找长度是:(n+1)/2 (1+3)/2+(41+1)/2=23 123/3=41)●在一棵完全二叉树中,其根的序号为1,_(33)_可判定序号为p和q的两个结点是否在同一层。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

21、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
22、深度为k的完全二叉树所含叶结点的个数最多为( B)。
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
28、广义表A=(x,((y),((a)),A))的深度是
A.2 B.3 C.4 D.∞
29、数据结构在计算机内存中的表示是指 A 。
35、在二维数组a[9][10]中:每个数组元素占用3个存储空间,从首地址SA开始按行优先
连续存放,则元素a[8][5]的起始地址是
A.SA+141 B.SA+144 C.SA+222 D.SA+255
36、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
D.一些表面上很不相同的数据可以有相同的逻辑结构
41、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
42、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
A 6 B 7 C 8 D 9
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
11、一个栈的入栈序列是1,2,3,4,5,则不可能的出栈序列是( )
A 5,4,3,2,1 B 4,5,3,2,1 C 4,3,5,1,2 D 1,2,3,4,5
A 6 B 7 C 8 D 9
32、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
10、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
A.{25,51,66,82,98,108}
C 选择排序和归并排序 D 插入排序和归并排序
8、在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
9、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
B.只有表尾指针没有表头指针的循环单链表
C.非循环双链表
D.循环双链表
45、广义表A=(x,((y),((a)),A))的深度是
A.2 B.3 C.4 D.∞
46、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
1、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
2、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
43、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
A 6 B 7 C 8 D 9
44、如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。
A.只有表头指针没有表尾指针的循环单链表
33、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
B.可以进行随机访问
C.可以省略表头指针或表尾指针
D.顺序访问相邻结点更灵活
34、若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
A)3,2,1,4 B)3,2,4,1
C)4,2,3,1 D)2,3,4,1
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
37、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A 6 B 7 C 8 D 9
47、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的.i D.i+1
48、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
38、若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱,则采用( )存储方法最节省时间
A 顺序表 B单链表 C 双链表 D单循环链表
4、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
5、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
39、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
40、以下说法正确的是 D 。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
18、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—i B.n—i—l C.i D.i+1
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
3、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
14、在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理
15、深度为k的完全二叉树至多有( )个结点
A B C D
A)2k B) 2k-1 C)k D) 2k
23、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
24、6个顶点的强连通图中,含有的边数至少是
A.4 B.5 C.6 D.7
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
30、在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
31、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
D.依附于对应顶点v的边数
6、以下说法正确的是 D 。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
7、下述排序方法中,时间性能和待排序记录的初始状态无关的是( )
A 插入排序和快速排序 B 归并排序和快速排序
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
25、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
相关文档
最新文档