数据结构主要知识点概述(上)

第一章 绪论
程序=算法+数据结构
数据结构的研究内容:
研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构的两个层次:逻辑结构(线性、树形、图形)、存储结构(顺序、链式);

 抽象数据类型(ADTs: Abstract Data Types):

 算法:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列。

 算法的特性:输入、输出、确定性、有穷性、可行性;

 算法的评价:正确性、可读性、健壮性、高效性(时间复杂度及空间复杂度)

 时间复杂度:算法中基本语句重复执行的次数是问题规模 n 的某个函数 f(n),算法的时间量度记作:T(n)=O(f(n))

 

 第二章 线性表

1. 线性表概念:

 2. 关于线性表的说明:

    2.1 线性表中数据元素的类型可以为简单类型,也可以为复杂类型。

    2.2 许多实际应用问题所涉的基本操作有很大相似性,不应为每个具体应用单独编写一 个程序。   

    2.3 从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然后实现其存储 结构和基本操作。

3. 线性表的顺序表示(顺序表)及其常见运算(初始化、销毁、删除、插入、取值等)

4. 线性表的链式表示(链表)及其常见运算(初始化、销毁、删除、插入、取值等) 单链表、双链表、循环链表的操作分析;

5. 顺序表示和链式表示的优缺点

6. 线性表的应用-有序链表的合并、多项式相加

 第三章 栈和队列

3.1 栈

 

栈的概念 栈的顺序存储和链式存储

栈与递归

栈的应用:重点掌握表达式求值;了解括号的匹配、数制的转换; 表达式求值的方法包括:1. 双栈操作方法;2.后缀表达式的求值;

3.2 队列

 队列的顺序表示

重点掌握循环队列的操作,判断队空和队满的条件。

第四章 串、数组和广义表

 4.1 串:零个或多个字符组成的有限序列 串的顺序存储、链式存储(块) 串的模式匹配算法:1.朴素的模式匹配;2.KMP 算法(算法思想、计算 next[j]的方法)

4.2 数组:由类型相同的数据元素构成的有序集合 理解行序优先和列序优先的方法;会计算指定存储方式下任意元素的存储位置; 理解二维数组、三维数组到 n 维数组的意义; 特殊矩阵的压缩存储方法:如对称矩阵,对角矩阵,三角矩阵,以及稀疏矩阵(十字链表)

4.3 广义表 理解广义表与线性表的区别; 求表头(GetHead)、求表尾(GetTail)的运算;

第五章 树和二叉树

5.1 树的定义

树(Tree)是 n(n≥0)个结点的有限集,它或为空树(n = 0);或为非空树,对于非空树 T:(1)有且仅有一个称之为根的结点;(2)除根结点以外的其余结点可分为 m(m>0)个 互不相交的有限集 T1, T2, …, Tm, 其中每一个集合本身又是一棵树,并且称为根的子树 (SubTree)。 树的多种表示方法:嵌套集合、凹入表示、广义表等 树相关的基本术语:根、叶子结点、分支结点、父亲结点、孩子结点、结点的度,等 树的存储方式:双亲表示法、孩子表示法、孩子兄弟表示法; 树到二叉树的转化。

5.2 二叉树

5.2.1 二叉树的定义:二叉树(Binary Tree)是 n(n≥0)个结点所构成的集合,它或为空树 (n = 0);或为非空树,对于非空树 T:(1)有且仅有一个称之为根的结点;(2)除根结点 以外的其余结点分为两个互不相交的子集 T1和 T2,分别称为 T 的左子树和右子树,且 T1和 T2本身又都是二叉树。

5.2.2 满二叉树和完全二叉树的概念及存储方式(重点掌握二叉链表存储方式)。

5.2.3 掌握二叉树的五条性质。性质 1: 在二叉树的第 i 层上至多有 2 i-1个结点;性质 2: 深度 为 k 的二叉树至多有 2 k -1 个结点;性质 3: 对于任何一棵二叉树,若 2 度的结点数有 n2个, 则叶子数 n0必定为 n2+1 (即 n0=n2+1);性质 4: 具有 n 个结点的完全二叉树的深度必为 [log2n]+1;性质 5: 对完全二叉树,若从上至下、从左至右编号,则编号为 i 的结点,其左 孩子编号必为 2i,其右孩子编号必为 2i+1;其双亲的编号必为 i/2。

5.2.4 二叉树的遍历 前序遍历、中序遍历、后序遍历;根据先序遍历+中序遍历(或者后序+中序)画出二叉树。

5.2.5 二叉树的建立方法,通过遍历创建二叉树。

5.2.6 理解线索二叉树的概念,会在指定二叉树上画出中序(先序、后续)线索二叉树。

5.3 二叉树的应用:

5.3.1 求解表达式的值 通过后序遍历计算表达式二叉树的值;

5.3.2 哈夫曼树和哈夫曼编码(重点掌握) 前缀编码的意义;哈夫曼树为带权路径最小的树; 根据指定条件,画出哈夫曼树的构造过程;根据哈夫曼树,设计哈夫曼编码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值