当前位置:文档之家› 数据结构习题和答案

数据结构习题和答案

习题课填空1对于一棵二叉树,若一个结点的编号为i,则它的左孩子结点的编号为 ________________ , 双亲结点的编号为_____________ 。

2、向一个长度为n的向量中删除第i个元素(1 < i < n)时,需向前移动_________ 个元素。

3、在一棵二叉树中,若双分支结点数为5个,单分支结点数为6个,则叶子结点数为__________ 个。

4、为了实现折半查找,线性表必须采用_____________ 方法存储。

顺序5、一种抽象数据类型包括数据对象________________ 和 ______________。

6、在以L为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为___________ 和 _______ 。

7、数据结构被形式地定义为(D, R),其中D是_________ 的有限集合,R是D上的_________ 有限集合。

8、队列的插入操作在_________ 进行,删除操作在___________ 进行。

9、二叉搜索树的中序遍历得到的结点序列为______ _____ _ 。

10、在顺序表中插入或删除一个元素,需要平均移动_________________元素,具体移动的元素个数与______________________ 关。

11、栈的特点是____________________ 。

12、在单链表中,除了首元结点外,任一结点的存储位置由__________ 。

13、在一个具有n个顶点的无向图中,要连通所有顶点则至少需要_________ 条边。

14、深度为k (设根的层数为1)的完全二叉树至少有个结点,至多有个结点。

15、一棵深度为6的满二叉树有_______ 个分支结点和______ 个叶子结点。

16、一个算法的效率可分为____________ 效率和____________ 效率。

仃、队列的特点是______________________ 。

18、一棵深度为5的满二叉树中的结点数为__________ 个。

19、在一个具有n个顶点的无向完全图中,包含有__________ 条边,在一个具有n个顶点的有向完全图中,包含有_________ 条边。

简答题1、已知一组元素为(38,26,62,94,35,50,28,55),画出按元素排列顺序输入生成的一棵二叉搜索树。

答:2、假设有二维数组A[0..5,0..7] ,每个元素用相邻的6 个字节存储,存储器按字节编址。

已知 A 的起始存储位置(基地址)为1000,计算:(1)末尾元素A57 的第一个字节地址为;(2)若按列存储时,元素A47 的第一个字节地址为。

(3)数组 A 的体积(存储量);(4)若按行存储时,元素A14 的第一个字节地址为。

3、已知二叉树结点的先序序列是ABCDEFGHIJ中序序列是CBAEFDIHJG请画出这棵二叉树。

4、试给出下图所示的有向图的邻接表和邻接矩阵。

5、试给出下图所示的有向图的邻接表和邻接矩阵。

3266、已知一组元素为(38, 52, 25, 74, 68, 16, 30, 54, 90, 72),画出按线性表中元素的次序生成的一棵二叉排序树,并求出其在等概率的情况下查找成功的平均查找长度。

7、禾U用普里姆算法,求下图对应的最小生成树。

&已知一组元素为(46,25,78,62,12,37,70,29 )画出按线性表中元素的次序生成的一棵二叉排序树,并求出其在等概率的情况下查找成功的平均查找长度。

算法分析题1、语句频度(a) 设n为正整数,试确定下面程序段中前置以记号@勺语句的频度。

x = 91; y= 100;while (y>0) {@ if (x>100) {x- = 10; y--;}else x++;}语句频度为: _______(b) 设n为正整数,试确定下面程序段中前置以记号@勺语句的频度。

x = n; y = 0;while (x> = (y+1)*(y+1)) {@ y++;}语句频度为: _______(c) 设n为正整数,试确定下面程序段中前置以记号@勺语句的频度。

i = 1; j = 0;while (i+j< = n) {@ if (i>j) j++;else i++;}语句频度为:__________2、顺序表操作⑻已知L是采用顺序结构存储的线性表,试完成删除表中第i个数据元素的算法。

Status ListDelete—Sq(SqList &L,int l,ElemTyep &e) {if ( __________ ) return ERROR; // 表空if ( __________ ) return ERROR; //删除位置不合法e=L.elem[i-1];for (j=i-1;j<=L」en gth-1;j++)________________________ 〃元素后移L.le ngth--; // 表长减1return OK;(b)已知L是采用顺序结构存储的线性表,试完成在第i个数据元素之前插入一个数据元素的算法。

Status Listlnsert—Sq(SqList &L,int i,ElemTyep e) {if ( __________________ ) return ERROR; //插入位置不合法if ( __________________ ) return ERROR; // 表满for (j=L .len gth-1;j>=i-1;j--)____________________________ 〃元素后移L.elem[i-1]=e;L.le ngth++; // 表长增1}3、简述下面算法的功能。

⑻ Status alto(Stack S, i nt e) {Stack T; int d;Ini tStack(T);While (!StackEmpty(S)) {Pop(S,d);if (d! = e) push(T,d);}While(!StackEmpty(T)) {Pop(T,d);push(S,d);}}算法功能为:_____________________________________________________________(b) void BB(LNode *s, LNode *q) {p=s;while (p->n ext!=q) p=p->n ext;p-> next=s; ]//BBvoid AA(LNode *pa, LNode *pb) {//pa和pb分别指向单循环链表中的两个结点BB(pa,pb);BB(pb,pa); }//AA prin tf(x);}算法功能为:_______________________________________________________(c) Status A(LinkedList L) {//L是无表头结点的单链表if (L&&L->next) {Q= L; L = L-> next;While (p->n ext) p = p->n ext;p-> next = Q; Q-> next = NULL;}return OK;}算法功能为:__________________________________________________________________4、二叉树相关(a) 下面函数的功能是求二叉树的深度,若二叉树为空树,则深度为0,否则它的深度等于左子树和右子树中的最大深度加1,请完善程序。

int DepthBTree(BTreeNode *BT){ if (BT == NULL) retur n 0;else {int depl = ____________________________ ; //计算左子树的深度int depr = ____________________________ ; //计算右子树的深度if (depl>depr) return _______________________else return _________________________ ;}}(b) 下面函数的功能是从二叉树查找值为x的结点,若存在则由x带回完整值并返回真,否则返回假,请完善程序。

bool Fin dBTree(BTreeNode *BT, ElemType x){ if (BT == NULL) retur n false;else {if ( __________________ ) {x = BT T data ; return true;}else {if ( _______________________ ) return true ; //向左子树查找若成功返回真if ( _______________________ ) return true ; II向右子树查找若成功返回真}}5、单链表题目⑻已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试写出删除表尾结点的语句序列。

(b)已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试写出在P结点之前插入S结点的语句序列。

(c)已知L 是带表头结点的非空单链表,且 P 结点既不是首元结点,也不是尾元结点,试写出删除p 结点的语句序列。

综合题3、7、& 2、6、10、14,试以它们为叶子结点构造WPL 。

2、已知下列字符 A 、B 、CD E 、F 、G 的权值分别为3、12、7、4、5、8 11,构造一棵 赫夫曼树并计算出带权路径长度 WPL解:3、已知哈希表地址为 0..8,哈希函数为H(k)=k mod7,采用线性探查法处理冲突。

将下面数1、有7个带权结点,其权值分别为棵赫夫曼树,并计算出带权路径长度据序列100,20,21,35,3,78,99,45 依次存入该散列表中,并求出在等概率下的平均查找长度。

(要求写出计算过程)0 1 2 3 4 5 6 7 8解:4、一个待散列存储的数据集合为{32,75,29,63,48,94,25,46,18,70,56},散列地址空间为HT[13],若采用除留余数法构造散列函数和线性探查法处理冲突,试求出每一元素的散列地址,画出最后得到的散列表,求平均查找长度。

选择题1、非空单循环链表L的尾结点*p满足()。

循环链表A.p-> next==NULLB.p==NULLC.p-> next==LD.p==L2、数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的 ()和运算的学科。

相关主题