跳转至

一 绪论

什么是数据结构?
带结构的数据元素的集合
数据结构 = 数据对象 + 结构

一个数据结构由哪三部分构成?
逻辑结构
存储结构
数据运算

顺序存储结构的特点是什么?
所有元素存放在一片连续的存储单元
逻辑上相邻的元素在逻辑位置上也是相邻的

链式存储结构的特点是什么?
数据元素存放在任意的存储单元, 这组存储单元可以是连续的, 也可以是不连续的
通过指针将组与组之间串起来, 所有组内是连续的

四种常见的存储结构是什么?
顺序存储结构
链式存储结构
索引存储结构
哈希(散列)存储结构

判断题
同一逻辑结构可以对应多种存储结构
同样的运算,在不同的存储结构中,其实现过程是不同的。

  1. C
  2. C
  3. 一对一 一对多
  4. 顺序存储、链式存储、索引存储和 哈希存储
  5. 逻辑、存储、运算


CCC
算法是对特定问题求解步骤的一种描述,它是指令的有限序列。
有穷性
确定性
可行性
有输入
有输出


CACA



BACA
BADC

二 线性表

什么是线性表, 线性表元素的三个特征是什么?
线性表是具有相同特性的数据元素的一个有限序列
三个特征:

  • 数据元素类型都是相同的
  • 数据元素个数是有限的
  • 数据元素是有序列的, 即有唯一的序号




A D A A D
A
n - i + 1
O(1) 随机存取结构
顺序 链式
n n + 1

单链表是如何实现逆置的(编码实现)?
更改指针

public static void Reverse(LinkListClass<Interger> L){
    LinkNode<Integer> p=L.head.next, q  // p指向首结点
    L.head.next = null; // 将L置为一个空表
    while(p!=null){
        q=p.next;  // q临时保存p结点的后继结点
        p.next=L.head.next; // 将p结点插入到表头
        L.head.next = p;
        p=q;
    }
}


ADA


4 front.next p
5 前趋结点 O(n)

顺序表相比与链表具有什么特点, 适用于什么样的运算?
空间上
顺序表的存储密度为1,而链表的存储密度小于1
顺序表需要预先分配空间, 二链表的存储空间是动态分配的
时间上
顺序表具有随机存取特性,给定序号查找对应的元素值的时间为0(1);
链表不具有随机存取特性,只能顺序访问,给定序号查找对应的元素值的时间为0(n)。
在顺序表中插入和删除操作时,通常需要平均移动半个表的元素。
在链表中插入和删除操作仅仅需要修改相关结点的指针成员,不必移动结点。


DB
错 错(反了 顺序表随机存取,链表顺序存取) 对 错(插入删除效率低)

三 栈和队列

栈的特点是什么?
后进先出

数据元素进栈次序为1、2、3,进栈过程中允许出栈,请写出各种可能的出栈元素序列。
321
123
132
213
231

顺序栈中的四要素是什么?

先++, 再赋值


B
C
#A是首个输入的元素
#入栈可立即出栈也可停留再出栈
D
C


A #c进去就出来只有CDBA
C

如何通过栈对元素进行逆置?

中缀表达式如何转后缀表达式?


错 对
A
#后缀表达式 从左向右进行
A
栈顶 栈底
A B C D - * + E F / -

队列的定义是什么和主要特点是什么?
尾插头删
先进先出

循环队列的假溢出如何解决?
增加一个空位

循环队列的队空, 队满, 进栈, 出栈条件是什么?

判断


A D B D A


A A(?) D
#为什么循环队列要%

四 串

B D
B # A为空白串 # D包含空白字符
线性结构 一维数组
S->next == NULL

五 递归

递归的定义是什么?

递归体和递归出口的判断?

A
C B
B

六 数组

按行优先

48 + 6 = 38
38
2 + 8000 = 8076
8039

按列
86 + 4 = 54
54
2 + 8000 = 8108
8053

矩阵相乘怎么算?

稀疏矩阵有那两种形式?
三元组

十字链表

例题都考

  1. B

  1. 315 注:579
  2. B 1000 - 54+304 = 864

七 树

30:30 不看了

二叉树递归求高度

简答题

编程题

二叉树不是度为2的数
二叉树和数是两种结构
完全二叉数和满二叉树的区别?

霍夫曼树是否有度为1的树?

WPL

二叉树还原?


什么是生成树?

9 查找

折半查找的前提

分块查找的特点

如何解决哈希冲突?






10 排序

题库