mirror of
https://github.com/huihut/interview.git
synced 2024-03-22 13:10:48 +08:00
更新广义表
This commit is contained in:
parent
c3b2ca4447
commit
8836dd5a20
68
README.md
68
README.md
|
@ -160,6 +160,74 @@ typedef struct {
|
|||
|
||||
### 递归
|
||||
|
||||
#### 概念
|
||||
|
||||
函数直接或间接地调用自身
|
||||
|
||||
#### 递归与分治
|
||||
|
||||
* 分治法
|
||||
* 问题的分解
|
||||
* 问题规模的分解
|
||||
* 折半查找(递归)
|
||||
* 归并查找(递归)
|
||||
* 快速排序(递归)
|
||||
|
||||
#### 递归与迭代
|
||||
|
||||
* 迭代:反复利用变量旧值推出新值
|
||||
* 折半查找(迭代)
|
||||
* 归并查找(迭代)
|
||||
|
||||
#### 广义表
|
||||
|
||||
[维基百科 . 广义表](https://zh.wikipedia.org/wiki/%E5%B9%BF%E4%B9%89%E8%A1%A8)
|
||||
|
||||
|
||||
##### 头尾链表存储表示
|
||||
|
||||
```cpp
|
||||
// 广义表的头尾链表存储表示
|
||||
typedef enum {ATOM, LIST} ElemTag;
|
||||
// ATOM==0:原子,LIST==1:子表
|
||||
typedef struct GLNode {
|
||||
ElemTag tag;
|
||||
// 公共部分,用于区分原子结点和表结点
|
||||
union {
|
||||
// 原子结点和表结点的联合部分
|
||||
AtomType atom;
|
||||
// atom是原子结点的值域,AtomType由用户定义
|
||||
struct {
|
||||
struct GLNode *hp, *tp;
|
||||
} ptr;
|
||||
// ptr是表结点的指针域,prt.hp和ptr.tp分别指向表头和表尾
|
||||
} a;
|
||||
} *GList, GLNode;
|
||||
```
|
||||
|
||||
![](images/GeneralizedList1.png)
|
||||
|
||||
##### 扩展线性链表存储表示
|
||||
|
||||
```cpp
|
||||
// 广义表的扩展线性链表存储表示
|
||||
typedef enum {ATOM, LIST} ElemTag;
|
||||
// ATOM==0:原子,LIST==1:子表
|
||||
typedef struct GLNode1 {
|
||||
ElemTag tag;
|
||||
// 公共部分,用于区分原子结点和表结点
|
||||
union {
|
||||
// 原子结点和表结点的联合部分
|
||||
AtomType atom; // 原子结点的值域
|
||||
struct GLNode1 *hp; // 表结点的表头指针
|
||||
} a;
|
||||
struct GLNode1 *tp;
|
||||
// 相当于线性链表的next,指向下一个元素结点
|
||||
} *GList1, GLNode1;
|
||||
```
|
||||
|
||||
![](images/GeneralizedList2.png)
|
||||
|
||||
### 二叉树
|
||||
|
||||
### 三叉树
|
||||
|
|
BIN
images/GeneralizedList1.png
Normal file
BIN
images/GeneralizedList1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
images/GeneralizedList2.png
Normal file
BIN
images/GeneralizedList2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
Loading…
Reference in New Issue
Block a user