1. 程式人生 > >計算機軟體技術基礎的學習(1):資料結構

計算機軟體技術基礎的學習(1):資料結構

本文為大三下學習《計算機軟體技術基礎》的知識點

一、------------資料結構:研究非數值運算(資料元素之間的關係)的程式設計------------------------------------

(1)線性表:

            順序儲存和鏈式儲存

            線性表的增刪改查

(2)棧與隊:

            順序和鏈式

           棧與隊的操作

(3)計算與分析程式的時間複雜度和空間複雜度:

           時間複雜度:程式執行中執行次數最多的語句的次數

           如:O(n^k)、O(nlog2(n))、O(x^n)

           空間複雜度:程式執行所需要的輔助單元(原始資料佔用的空間除外)

(4)數與二叉樹

           樹的結點、結點的度、結點的層次、深度、葉子、孩子、兄弟、雙親

           二叉樹的遍歷:先序中序後序遍歷

           二叉排序樹:左子樹 < 右子樹

           哈夫曼樹以及哈夫曼編碼:帶權路徑最短的樹

(5)圖:頂點和頂點關係的集合

           有向和無向圖、度和入度以及出度、鄰接矩陣、鄰接表

           圖的遍歷:深度和廣度優先搜尋

           圖的應用:單源最短路徑

(6)查詢:對分查詢、雜湊表

            雜湊表:

            構造雜湊表:數字分析法、平方取中法、除留餘數法

            解決衝突的方法:線性探測再雜湊、平方探測再雜湊、隨機探測再雜湊、鏈地址法

(7)排序:

            簡單選擇排序、堆排序、線性插入排序、交換排序、氣泡排序、快速排序