数据结构与算法分析复习资料.docx
《数据结构与算法分析复习资料.docx》由会员分享,可在线阅读,更多相关《数据结构与算法分析复习资料.docx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构与算法分析复习资料数据结构复习资料总结2012-05 T.H.C 2012-06-05 MODIFY书目1. 第一章31.1 基本概念题31.2 逻辑结构题31.3 物理结构题31.4 算法特性题42. 线性表42.1 基本概念题42.2 依次表42.3 链表概念题52.4 链表指针题52.5 链表编程题63. 栈和队列83.1 栈的概念题83.2 进栈出栈题83.3 链栈指针题93.4 链栈编程题93.5 队列概念题103.6 链队指针题103.7 链队编程题113.8 循环队列题124. 串124.1 串的基本概念124.2 串函数134.5 串的编程题135. 数组和广义表145
2、.1 数组坐标换算题145.2 矩阵题145.3 广义表156. 树和二叉树156.1 二叉树的概念性质156.2 二叉树的链式存储176.3 树的遍历概念题176.4 树的遍历操作题186.5 树的遍历编程题206.6 哈夫曼树216.7 树的遍历反过来做的题227. 图237.1 图的基本概念237.2 图的遍历247.3 图的最小生成树247.5 图的连通性258. 查找258.1 依次查找258.2 折半查找258.3 二叉排序树268.4 二叉判定树288.5 哈希函数298.6 折半查找编程题298.7 二叉排序树编程题309. 排序319.1 排序基本概念319.2 干脆插入排序
3、319.3 折半插入排序329.4 交换排序之冒泡排序329.5 交换排序之快速排序339.6 选择排序之干脆选择排序349.7 选择排序之堆排序359.8 选择排序之归并排序389.9 排序稳定性题381. 第一章1.1 基本概念题1线性结构中数据元素的位置之间存在( )的关系。 【B】 A一对多 B一对一 C多对多 D每一个元素都有一个干脆前驱和一个干脆后继 注:D选不全的,第一个元素就木有前驱,最终一个元素就木有后继。2数据结构中,与所运用的计算机无关的是数据的( )结构。 【D】 A物理 B存储 C逻辑与物理 D逻辑3结构中的数据元素存在一对一的关系称为_结构。 【线性】4数据元素是数
4、据的基本单位,它( )。 【C】 A只能有一个数据项组成 B至少有二个数据项组成C可以是一个数据项也可以由若干个数据项组成D至少有一个数据项为指针类型 5 一种逻辑结构( )存储结构。 【A】A可以有不同的 B只能有唯一的C的数据元素在计算机中的表示称为 D的数据元素之间的关系称为1.2 逻辑结构题1通常数据的逻辑结构包括_, _, _, _四种类型。 【集合;线性;树形;图状】2通常可以把一本含有不同章节的书的书目结构抽象成_结构。【树形】 3通常可以把某城市中各公交站点间的线路图抽象成_结构。【图状】4结构中的数据元素存在多对多的关系称为_结构。【图状(网状)】5结构中的数据元素存在一对多
5、的关系称为_结构。【树形】6结构中的数据元素存在一对一的关系称为_结构。【线性】1.3 物理结构题1把数据存储到计算机中,并详细体现数据之间的逻辑结构称称为物理( )结构。【存储】2把数据存储到计算机中,并详细体现数据之间的逻辑结构称为_结构。(物理(存储)1.4 算法特性题1以下特征中,( )不是算法的特性。 【C】A有穷性 B确定性 C有0个或多个输出 D可行性 2算法的时间困难度与( )有关。 【D】 A所运用的计算机 B与计算机的操作系统 C与数据结构 D与算法本身3要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间困难度分别为_和 O(n)。
6、【n-1】2. 线性表2.1 基本概念题1针对线性表,在存储后假如最常用的操作是取第i个结点和其前驱,则采纳( )存储方式最节约时间。 【B】A单链表 B依次表 C单循环链表 D双链表2.2 依次表1设有一个长度为n的依次表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),则移动元素个数为( )。 【A】 An-i+1 Bn-i Cn-i-1 Di注:元素要插入到i的位置,不动的是前面i-1个元素,总元素有n个,要移动的元素个数是: n-(i-1) 即: n- i +12. 设依次存储的线性表长度为n,对于插入操作,设插入位置是等概率的,则插入一个元素平均移动元素的次数为( )。【A
7、】An/2 Bn Cn-1 Dn-i+13 .设依次存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为( )。 【A】A(n+1)/2 Bn C2n Dn-i4线性表的依次结构中,( )。 【C】A逻辑上相邻的元素在物理位置上不肯定相邻B数据元素是不能随机访问的C逻辑上相邻的元素在物理位置上也相邻D进行数据元素的插入, 删除效率较高2.3 链表概念题1链表所具备的特点是( )。 【D】A可以随机访问任一结点 B占用连续的存储空间C可以通过下标对链表进行干脆访问 D插入删除元素的操作不须要移动元素结点 2线性表采纳链式存储时,其地址( )。 【C】A肯定
8、是不连续的 B必需是连续的C可以连续也可以不连续 D部分地址必需是连续的3设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句_。 【p=p-next;】4在双向链表中,每个结点有两个指针域,一个指向_,另一个指向_。 【结点的干脆后继 结点的干脆前驱】5以下说法中不正确的是( )。 【B】A双向循环链表中每个结点须要包含两个指针域B已知单向链表中任一结点的指针就能访问到链表中每个结点C依次存储的线性链表是可以随机访问的D单向循环链表中尾结点的指针域中存放的是头指针6以下表中可以随机访问的是( )。 【D】 A单向链表 B双向链表 C单向
9、循环链表 D依次表2.4 链表指针题基本图形:1在一个单链表中,p, q分别指向表中两个相邻的结点,且q所指结点是p所指结点的干脆后继,现要删除q所指结点,可用的语句是( )。 【C】 Ap=q-next Bp-next=q Cp-next=qnext Dq-next=NULL2在双向链表中,每个结点有两个指针域,一个指向结点的干脆后继,另一个指向_。【结点的干脆前驱】3设有一个头指针为head的单向循环链表,p指向链表中的结点,若p-next=_,则p所指结点为尾结点。 【 head 】4设有一个头指针为head的单向链表,p指向表中某一个结点,且有p-next=NULL,通过操作_,就可使
10、该单向链表构造成单向循环链表。【p-next=head;】5带头结点的单向链表的头指针为head,该链表为空的判定条件是( )的值为真。【C】Ahead = = NULL Bhead-next= =headChead-next= = NULL Dhead = =head-next6双向循环链表结点的数据类型为: 【B】 struct node int data; struct node *next; /*指向干脆后继*/ struct node *prior;;设p指向表中某一结点,要显示p所指结点的干脆前驱结点的数据元素,可用操作( )。Aprintf(“%d”,p-next-data);
11、Bprintf(“%d”,p-prior-data);Cprintf(“%d”,p-prior-next); Dprintf(“%d”,p-data);7要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head- next; _。【p-next=head;】8设有一个头指针为head的单向链表,p指向表中某一个结点,且有p-next= =NULL,通过操作_,就可使该单向链表构造成单向循环链表。 【p-next=head;】9双向循环链表中,p指向表中某结点,则通过p可以访问到p所指结点
12、的干脆后继结点和干脆前驱结点,这种说法是_的(回答正确或不正确)。 【正确】10设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句_。 【p-next=head;】11设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式_的结果为真,则p所指结点为尾结点。 【p-next= =head;】12设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的干脆前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作_。 【p-next=head;】13要在一
13、个单向链表中p所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为next,可执行_和p-next=s;的操作。【s-next= p-next;】14要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的干脆前驱结点,若链表中结点的指针域为next,则可执行_。【q-next= p-next;】2.5 链表编程题1编程题 以下是用头插法建立带头结点且有n个结点的单向链表的程序,要求结点中的数据域从前向后依次为n,n-1,1,完成程序中空格部分。NODE *create2(n)NODE *head , *p, *q; int i; p=(NODE*)malloc(sizeof(
14、NODE); p-next=NULL;head=(1) ; (2) ;for(i=1; idata=i; if(i= =1) p-next=NULL; else p-next= (4) ;q-next= (5) ;return(head);下面答案:(1)p(2)q=p(3)(NODE*)malloc(sizeof(NODE)(4)q-next(5)p2编程题 以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,struct node int data;struct node *next;typedef struct node NODEint delete(NODE *head,
15、int i )NODE *p,*q; int j; q=head;j=0; while(q!=NULL)&( _(1)_) _(2)_;j+; if(q=NULL) return(0); p= _(3)_; _(4)_=p-next; free(_(5)_); return(1); 下面答案:(1)jnext(3)q-next(4)q-next(5)p3. 栈和队列3.1 栈的概念题1栈的插入删除操作在( )进行。 【B】 A栈底 B栈顶 C随意位置 D指定位置 2以下说法正确的是( )。 【C】 A栈的特点是先进先出,队列的特点是先进后出 B栈和队列的特点都是先进后出C栈的特点是先进后出,队
16、列的特点是先进先出 D栈和队列的特点都是先进先出3栈和队列的相同点是( )。 【D】A都是后进先出 B都是后进后出C逻辑结构与线性表不同 D逻辑结构与线性表相同,都是操作规则受到限制的线性表3.2 进栈出栈题1元素3,6,9按依次依次进栈,则该栈的不行能输出序列是( )(进栈出栈可以交替进行)。A9,3,6 B9,6,3 【A】C6,3,9 D3,9,62元素2,4,6,8按依次依次进栈,则该栈的不行能输出序列是( )(进栈出栈可以交替进行)。 【D】 A8,6,4,2 B2,4,6,8 C4,2,8,6 D8,6,2,43一个栈的进栈序列是5,6,7,8,则栈的不行能的出栈序列是( )(进出
17、栈操作可以交替进行) 【A】A5,8,6,7 B7,6,8,5C7,6,5,8 D8,7,6,54. 一个栈的进栈序列是efgh,则栈的不行能的出栈序列是( )(进出栈操作可以交替进行)。 【D】Ahgfe Bgfeh Cfgeh Dehfg3.3 链栈指针题1从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行x=h-data;和_。(结点的指针域为next) 【h=h-next;】2向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行_和h=s;。 【s-next=h;】3从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行_和h=h-next;。(结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 分析 复习资料
限制150内