c语言数据结构自测题,C语言数据结构复习题.doc

253b171540df25e1b84436cbe50dfc72.gifC语言数据结构复习题.doc

一、单选题1. 在数据结构中,从逻辑上可以把数据结构分为( )。A动态结构和静态结构 B紧凑结构和非紧凑结构C线性结构和非线性结构D内部结构和外部结构2. 算法具备输入,输出和( )等五个特性A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性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, E,下列是不可能的出栈序列()。 AA, B, C, D, E BB, C, D, E, ACE, A, B, C, D DE, D, C, B, A8在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为()。 Atop不变 Btop0 Ctop Dtop9在循环队列中,若front与rear 分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是()。Afrontrear1 Brearfront1 Cfrontrear Dfront010若INDEX(S,T)表示求T在S中的位置的操作,则对于S“BeijingNanjing”,T“jing”,INDEX(S,T)()。A.2 B.3 C.4 D.511串是一种特殊的线性表,其特殊性体现在()。A可以顺序存储B数据元素是一个字符C可以链式存储D数据元素可以是多个字符12稀疏矩阵一般的压缩存储方法有两种,即()。A.二维数组和三维数组 B.三元组和散列C.三元组和十字链表 D.散列和十字链表13对矩阵进行压缩存储是为了()。A方便运算B方便存储C提高运算速度 D减少存储空间14假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为()个。A. 15 B. 16 C. 17 D. 4715树最适合用来表示( )。A有序数据元素B无序数据元素C元素之间具有分支层次关系的数据D元素之间无联系的数据16根据先序序列ABDC(根左右)和中序序列DBAC(左根右)确定对应的二叉树,该二叉树( )。A. 是完全二叉树 AB. 不是完全二叉树 B CC. 是满二叉树D D. 不是满二叉树 17已知一棵完全二叉树的结点总数为9个,则最后一层的结点数为 。A. 1 B. 2 C. 3 D. 4 12 34 5 6 78 918对于一个无向图,下面 种说法是正确的。A. 每个顶点的入度等于出度 B. 每个顶点的度等于其入度与出度之和C. 每个顶点的入度为0 D. 每个顶点的出度为019对于长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素的比较次数为 。A. 3 B. 4 C. 5 D. 620若要对1000个元素排序,要求既快又节省存储空间,则最好采用( )方法。A. 直接插入排序B. 归并排序C. 堆排序D. 快速排序二、判断题1. 顺序存储方式只能用于存储线性结构。( F )2. 已知指针P指向键表L中的某结点,执行语句PP.next不会删除该链表中的结点。( T )3. 队列是一种插入和删除操作分别在表的两端进行的线性表,是一种先进后出的结构。( F )4.如果一个串中的所有字符均在另一串中出现,则说前者是后者的子串。( F )5. 用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。( T )6.快速排序是不稳定排序。( T )7. 在哈夫曼树中,权值最小的结点离根结点最近。( F )8.若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条(其中n为G的顶点数)。( T )9.给出不同的输入序列建造二叉排序树,一定得到不同的二叉排序树。( F )10.冒泡排序算法关键字比较的次数与记录的初始排列次序无关。( F )三、填空题1数据的逻辑结构有四种基本形态,分别是集合、 线性表 、树和图。2. 一个算法的效率可分为时间效率和 空间 效率。3在单链表中,要删除某一指定的结点,必须找到该结点的( 前驱 )结点。4当对一个线性表经常进行插入和删除操作时,采用 链式 存储结构为宜。5对于队列而言,只能在( 队尾 )位置插入元素。7稀疏矩阵一般的压缩存储方法有两种,即( 三元组 )和十字链表。8 在一棵二叉树中,度为零的结点的个数为n0,度为2 的结点的个数为n2,则有n0( n21 )。9. 三叉链表比二叉链表多一个指向( 双亲 )的指针域。10. 具有10个顶点的无向图,边的总数最多为( 45)。NN-1/2四、综合应用题要点1.二叉树先序遍历、中序遍历、后序遍历 根左右 左根右 左右根要点2.哈夫曼树的生成 排序 选数 连接最小的数 比较 要点3.森林和二叉树的相互转换 要点4.将图转换成最小生成树要点5.根据稀疏矩阵对应的三元组线性表,画出稀疏矩阵要点6.根据无向图或者有向图的邻接表,画出无向图或者有向图要点7.求最短路径的Dijkstra算法五、算法设计题。要点着重关注单链表的基本操作(数据插入、删除、判断单链表是否为空,返回单链表元素个数等),栈或者队列两种结构链式或者顺序存储结构定义中的方法。比如出栈(队列)、进栈(队列),获取栈(队列)首元素,判断栈(队列)是否为空等等。includestdio.hdefine MAXSIZE 20 define OK 1define ERROR 0typedef int Status; typedef int ElemType;typedef structElemType dataMAXSIZE;int length; 线性表中元素个数SqList;初始化线性表SqList InitListSqList L;L.length0;return L;插入元素Status ListInsertSqList *L,int i,ElemType eint k;ifL-lengthMAXSIZE i0 iL-lengthreturn ERROR;forkL-length-1;ki;kL-datak1L-datak;L-dataie;L-length;return OK;获取元素ElemType GetElemSqList L,int iifL.length0 i0 iL.length-1printf位置错误;return L.datai;删除元素Status ListDeleteSqList *L,int i,ElemType *eint k;ifL-length0 i0 iL-length-1return ERROR;*eL-datai;forki;kL-length;kL-datak-1L-datak;L-length;return OK;清空线性表void ClearListSqList *LL-length0;判断线性表是否为满Status ListFullSqList LifL.lengthMAXSIZEreturn OK;elsereturn ERROR;判断线性表是否为空Status ListFullSqList LifL.length0return OK;elsereturn ERROR;int mainStatus x;ElemType y,*e,z;SqList LInitList;ListInsertListInsertListInsertyGetElemL,1;e ListDeletezGetElemL,1;printfdn,z;ClearListreturn 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值