C++之数据结构
做了好多題,發現了好多新的定義,如根節點,二叉樹,圖等等,涉及到了好多有關數據結構的知識,剛開始的幾道選擇題貌似都是和此相關的東西,以下是自己畫的簡單的思維導圖
對于數據結構,自己只是先明白了其中的一些簡單的定義:
線性表:
1)定義:數據表中的數據元素是一對一的關系,即除了第一個和最后一個數據元素之外,其他數據元素都是首尾相接的。
2)結構特點:均勻性,有序性
在實現線性表數據元素的存儲方面,可用順序存儲結構和鏈式存儲結構兩種方法。另外,棧,隊列,和串也是線性表的特殊情況,固這些都屬于線性結構。
3)鏈式存儲和順序存儲的比較:
隊列:
1)先進先出的特點,排隊買東西則是一個很好的舉例,排頭的顧客買完后走掉,新來的顧客排在隊尾。
2)鏈式存儲:要知道任何一種實現表的方法,都可以用于實現隊列。棧也同此;用指針實現的隊列得到的實際上是一個單鏈表。
二叉樹:
1)定義:二叉樹(Binary Tree)是個有限元素的集合,該集合或者為空、或者由一個稱為根(root)的元素及兩個不相交的、被分別稱為左子樹和右子樹的二叉樹組成。當集合為空時,稱該二叉樹為空二叉樹。在二叉樹中,一個元素也稱作一個結點。
二叉樹是有序的,即若將其左、右子樹顛倒,就成為另一棵不同的二叉樹。即使樹中結點只有一棵子樹,也要區分它是左子樹還是右子樹。
2)概念:
3)性質:
線性結構和非線性結構:
1)線性結構:是n個數據元素的有序集合,在數據結構中指的是數據元素之間存在著“一對一”的線性關系的數據結構。
四個基本特征:
- 集合中必存在唯一的一個“第一個元素”;
- 集合中必存在唯一的一個“最后的元素”;
- 除最后元素之外,其它數據元素均有唯一的“后繼”;
- 除第一元素之外,其它數據元素均有唯一的“前驅”。
2)非線性結構的一個邏輯特征是一個結點元素可能對應多個直接前驅和多個后繼。
3)常見的線性結構:線性表(順序表,鏈表),棧,隊列,雙隊列,數組,串
? ?常見的非線性結構:二維數組,多維數組, 廣義表,樹(二叉樹),圖(網)
轉載于:https://www.cnblogs.com/huohuoL/p/10545600.html
總結
- 上一篇: python-flask-1
- 下一篇: VC/MFC列表CListCtrl类的L