数据结构总复习

核心要点–必须掌握

  1. 掌握数据结构的基本概念和术语。包括:数据,数据元素,数据项,数据结构等基本概念
  2. 算法和算法分析:掌握算法,算法的时间复杂度和空间复杂度,掌握算法分析的方法,对一般算法能分析处时间复杂度。还有算法的特性。
  3. 掌握线性表的定义和逻辑结构,了解线性表的基本运算,
  4. 掌握顺序表的插入和删除操作及平均时间性能分析
  5. 熟练掌握单链表,插入和删除操作并分析其时间复杂度
  6. 了解循环单链表算法和单链表上相应算法的异同
  7. 利用单链表设计算法解决简单的应用问题
  8. 掌握顺序表和链表的主要优缺点
  9. 掌握栈的逻辑结构特点
  10. 掌握顺序栈和链栈上实现的进栈,出栈的基本算法
  11. 掌握队列的逻辑结构特点
  12. 掌握顺序队列(主要是循环队列)和链式队列上实现的入队,出队 的基本算法
  13. 掌握串的有关概念和基本运算
  14. 了解串的两种存储表示
  15. 掌握树的常用术语和含义
  16. 掌握二叉树的递归定义及树与二叉树的差别
  17. 熟练掌握二叉树的性质
  18. 掌握二叉树的两种存储方法
  19. 熟练掌握二叉树的三种遍历方法
  20. 熟练掌握确定三种遍历所得到的相应的结点的访问顺序
  21. 掌握以遍历算法为基础,设计有关算法解决简单的应用问题
  22. 熟练掌握树和森林与二叉树之间的转换方法
  23. 掌握给定的叶节点及其权值构造出哈夫曼树
  24. 掌握图的常用术语及含义
  25. 掌握图的深度优先搜索和广度优先搜索两种遍历方法及执行过程
  26. 熟练掌握确定两种遍历所得到的顶点访问序列
  27. 要求对给定的连通图,根据Prim和Kruskal算法构造最小生成树
  28. 对于给定的有向图,根据Dijkstra算法能画出单源最短路径的过程示意图
  29. 对于给定的有向图,若拓扑序列存在,则要写出一个或多个拓扑序列
  30. 能写出每种排序方法的各趟排序图示
  31. 对各种排序方法进行比较,能分析各种排序的时间复杂度,空间复杂度和稳定性
  32. 掌握顺序查找,二分查找,算法实现和查找效率分析
  33. 掌握二分查找对存储结构及关键字的要求
  34. 会建立一颗二叉查找树

以上知识点是对数据结构的概述,请大家务必掌握

1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的① 、数据信息在计算机中的② 以及一组相关的运算等的课程。 ① A.操作对象   B.计算方法  C.逻辑结构  D.数据映象 ② A.存储结构 B.关系 C.运算 D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是① 的有限集合,R是D上的② 有限集合。 ① A.算法 B.数据元素 C.数据操作 D.数据对象 ② A.操作 B.映象 C.存储 D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 4. 算法分析的目的是① ,算法分析的两个主要方面是② 。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是① ,它必具备输入、输出和② 等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括 、 、 和 四种类型,树形结构和图形结构合称为 。 2. 在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 个前驱结点;最后一个结点 后续结点,其余每个结点有且只有 个后续结点。 3. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个直接前驱结点,叶子结点没有 结点,其余每个结点的直接后续结点可以 。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以 。 5. 线性结构中元素之间存在 关系,树形结构中元素之间存在 关系,图形结构中元素之间存在 关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0;j<n; j++) A[i][j]=0; 8. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0; j<i; j++) A[i][j]=0; 9. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 s=0; for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) s=s+B[i][j][k]; sum=s; 10. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 int i=0,s=0; while (s<n) { i++; s+=i; //s=s+i } 11. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 i=1; while (i<=n) i=i*2;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值