本篇文章算是對初階數據結構的總結,內容較多,請耐心觀看
基礎概念部分
順序表
鏈表

棧和隊列
棧

特點
隊列

特點
樹
這兩個圖只是方便大家理解的。
堆?

二叉樹
幾個重要概念
1. 滿二叉樹:一個二叉樹的層數為K,且結點總數是2的k次 - 1,則它就是滿二叉樹。
2. 完全二叉樹:當且僅當其每一個結點都與深度為K的滿二叉樹中編號從1至n的結點一一對應時稱之為完全二叉樹
3.結點的度:?結點含有的子樹的個數
4. 結點的層次: 從根節點開始數
二叉樹的特性
實操部分
顧名思義,數據結構是又有數據又有結構體因此初階數據結構的每一部分內容的結構體給大家放在下方
各種初階數據結構的結構體部分
順序表
結構體內的元素:數組、有效的元素個數、空間大小
鏈表
結構體內的元素: 數、指向下一個節點的next指針
棧
隊列
初始化以及銷毀的思路部分
這里呢我也是找了以前寫過的文章,給大家串一串這個部分該怎么寫代碼
初始化部分
將結構體內的元素進行初始化,eg. 結構體內的數組、指針之類的置為空,剩余的如空間、計數器等整型變量置為0即可,注意初始化前必須聲明結構體不為空
銷毀部分
先聲明結構體以及需要釋放的不為空,然后還原回與初始化相同即可。
當然這里的銷毀具體情況還需要具體分析,如鏈表就是需要具體情況具體分析
插入部分
插入的前置條件
這個部分則是判斷空間是否充足,那么這里的邏輯我就不繼續講解了,相信學到這里的小伙伴都是可以靠自己看懂這個代碼的,當然啦如果又不懂的小伙伴可以評論區留言
插入數據
在空間充足的情況下 通過賦值的方式將數據插入,同時別忘了有效數字個數要加一哦。
當然除了上面那種寫法外也可以寫成:ps->arr[ps->size++] = x;
刪除部分
首先需要聲明你所要刪除的結構體、有效長度、指針等等不為空,通過覆蓋、釋放函數等手段對其進行刪除,有有效長度的需要減一,如果是指針,則需要釋放并置空后,在指向下一個節點。
查找部分
這個部分先前是沒怎么講解過,那么我們先來看下實現這個函數,它的新參有哪些
從圖中我們可以看出需要的有結構體和需要查找的參數,那么只需要遍歷即可(如遍歷數組,遍歷鏈表等等)。當找到與我們所要尋找的參數數值相同時,即可返回(該結點等等)即可
以上這些僅僅是思路,如果你是屬于那種沒有思路,那么這篇文章就很適合你,此外光有這些還不夠,最主要的就是畫圖,需要根據要求進行畫圖分析,然后將圖解轉換成代碼
那么初階數據結構系列的文章正式完結