From c3b2ca4447bf8334f46b81e2142078510e49ed35 Mon Sep 17 00:00:00 2001 From: huihut Date: Wed, 14 Feb 2018 23:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=93=BE=E9=98=9F=E5=88=97?= =?UTF-8?q?=E3=80=81=E5=8D=95=E9=93=BE=E8=A1=A8=E3=80=81=E5=8F=8C=E5=90=91?= =?UTF-8?q?=E9=93=BE=E8=A1=A8=E3=80=81=E5=BE=AA=E7=8E=AF=E9=93=BE=E8=A1=A8?= =?UTF-8?q?=E3=80=81=E5=93=88=E5=B8=8C=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 62 +++++++++++++++++++++++++++++++++++++++-- images/CirLinkList.png | Bin 0 -> 4274 bytes images/DuLinkList.png | Bin 0 -> 3613 bytes images/HashTable.png | Bin 0 -> 14820 bytes images/LinkList.png | Bin 0 -> 7832 bytes images/LinkQueue.png | Bin 0 -> 4839 bytes 6 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 images/CirLinkList.png create mode 100644 images/DuLinkList.png create mode 100644 images/HashTable.png create mode 100644 images/LinkList.png create mode 100644 images/LinkQueue.png diff --git a/README.md b/README.md index 39a998f..afc0250 100644 --- a/README.md +++ b/README.md @@ -92,14 +92,72 @@ typedef struct { ### 链式结构 -#### 链栈(Link Stack) +```cpp +typedef struct LNode { + ElemType data; + struct LNode *next; +} LNode, *LinkList; +``` #### 链队列(Link Queue) -#### 线性表的链式表示(Link List) +![](images/LinkQueue.png) + +#### 线性表的链式表示 + +##### 单链表(Link List) + +![](images/LinkList.png) + +##### 双向链表(Du-Link-List) + +![](images/DuLinkList.png) + +##### 循环链表(Cir-Link-List) + +![](images/CirLinkList.png) ### 哈希表 +#### 概念 + +哈希函数:`H(key): K -> D , key ∈ K` + +#### 构造方法 + +* 直接定址法 +* 除留余数法 +* 数字分析法 +* 折叠法 +* 平方取中法 + +#### 冲突处理方法 + +* 链地址法:key相同的用单链表链接 +* 开放定址法 + * 线性探测法:key相同 -> 放到key的下一个位置,`Hi = (H(key) + i) % m` + * 二次探测法:key相同 -> 放到 `Di = 1^2, -1^2, ..., ±(k)^2,(k<=m/2)` + * 随机探测法:`H = (H(key) + 伪随机数) % m` + +#### 线性探测的哈希表数据结构 + +```cpp + +typedef char KeyType; + +typedef struct { + KeyType key; +}RcdType; + +typedef struct { + RcdType *rcd; + int size; + int count; + bool *tag; +}HashTable; +``` +![](images/HashTable.png) + ### 递归 ### 二叉树 diff --git a/images/CirLinkList.png b/images/CirLinkList.png new file mode 100644 index 0000000000000000000000000000000000000000..76d309582f1dd8ecacc9aa319079b1eebaedad5f GIT binary patch literal 4274 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 literal 0 HcmV?d00001 diff --git a/images/HashTable.png b/images/HashTable.png new file mode 100644 index 0000000000000000000000000000000000000000..c747534834f1010393c8810240d8740af9e64fa0 GIT binary patch literal 14820 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 Ib&F^J4Zs9crT_o{ literal 0 HcmV?d00001 diff --git a/images/LinkList.png b/images/LinkList.png new file mode 100644 index 0000000000000000000000000000000000000000..85111a0ee412c2710491f20a409edf447539fbcd GIT binary patch literal 7832 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 Bn9%?L literal 0 HcmV?d00001 diff --git a/images/LinkQueue.png b/images/LinkQueue.png new file mode 100644 index 0000000000000000000000000000000000000000..6b394095d7b84da779b8664478fecd8d4f077aad GIT binary patch literal 4839 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 EA4iPoi2wiq literal 0 HcmV?d00001