原创 數據結構--雙向鏈表總結

#include <stdio.h> #include <stdlib.h> typedef struct line { struct line* prv; int data; struct line* next; }; //

原创 數據結構--單鏈表總結

#include <stdio.h> #include <stdlib.h> typedef struct Link { int data; struct Link* next; }link; //創建鏈表 link* Init

原创 數據結構--順序表總結

順序表,全名順序存儲結構,是線性表的一種 順序表存儲數據時,會提前申請一整塊足夠大小的物理空間,然後將數據依次存儲起來,存儲時做到數據元素之間不留一絲縫隙。 使用順序表存儲數據之前,除了要申請足夠大小的物理空間之外,爲了方便後期使用表中的

原创 C++容器(樹形結構關連式容器總結)---7

根據應用場景的不同,STL總共實現了兩種不同結構的管理式容器:樹形結構與哈希結構 樹形結構的關連式容器主要有四種 :map、set、multimap、multiset。這四種容器的共同點是:使用平衡搜索樹(紅黑樹)作爲底層結果,容器中的元

原创 數據結構--棧總結

順序棧 #include <stdio.h> #include <stdlib.h> //元素入棧 int push(int*a ,int top,int data) { a[++top] = data; return top;

原创 unordered系列關聯式容器---底層結構

unordered_map 1. unordered_map是存儲鍵值對的關聯式容器,其允許通過keys快速的索引到與其對應的 value。 2. 在unordered_map中,鍵值通常用於惟一地標識元素,而映射值是一個對象,其內容與

原创 C++(map/multimap/set/multiset)底層實現---二叉搜索樹

二叉搜索樹的概念 二叉搜索樹又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹: 若它的左子樹不爲空,則左子樹上所有節點的值都小於根節點的值 若它的右子樹不爲空,則右子樹上所有節點的值都大於根節點的值 它的左右子樹也分別

原创 數據結構--二叉樹總結

#include <iostream> #include <stdlib.h> using namespace std; typedef int TelemType; typedef struct BinaryTreeNode {

原创 C++(map/multimap/set/multiset)底層實現---AVL樹

       二叉搜索樹雖然可以縮短查找的效率,但如果數據有序或接近有序二叉搜索樹將退化爲單支樹,查找元素相當於在順序表中搜索元素,效率低下       當向二叉搜索樹中插入新結點後,如果能保證每個結點的左右子樹高度之 差的絕對值不超過1

原创 set與map的模擬實現

map的底層結構就是紅黑樹,因此在map中直接封裝一棵紅黑樹,然後將其他接口包裝 /////map的模擬實現 namespace bit { template<class k,classv> class map { typed

原创 哈希衝突-----閉散列與開散列

閉散列: 也叫開放定址法,當發生哈希衝突時,如果哈希表未被裝滿,說明在哈希表中必然還有空位置,那麼可以把key存放到衝突位置中的“下一個” 空位置中去。 #include <iostream> using namespace std;

原创 數據結構--隊列總結

順序隊列 #include <stdio.h> #include <stdlib.h> #define max 5 //表示順序表申請的空間大小 //入隊 /*int enQueue(int* a, int rear, int dat