************************************************************************
數據就是指能夠被計算機識別
數據元素是數據的基本單位
************************************************************************
數據結構的定義
·線性結構
·存儲結構
·鏈式存儲結構
·索引存儲結構
·稀疏索引
·散列存儲結構
·數據運算
·常用的有
************************************************************************
數據類型
·結構類型
抽象數據類型ADT
·優點是將數據和操作封裝在一起實現了信息隱藏
************************************************************************
程序設計的實質是對實際問題選擇一種好的數據結構
************************************************************************
算法是一個良定義的計算過程
評價算法的好壞的因素
·執行算法的時間
·執行算法的存儲空間(主要是輔助存儲空間)
·算法易於理解
************************************************************************
時間復雜度
漸近時間復雜度
評價一個算法的時間性能時
算法中語句的頻度不僅與問題規模有關
時間復雜度按數量級遞增排列依次為
(n^
空間復雜度
算法的時間復雜度和空間復雜度合稱算法復雜度
第二章 線性表
************************************************************************
線性表是由n≥
************************************************************************
線性表上定義的基本運算
·求表長
·取結點
·查找
·插入
·刪除
************************************************************************
順序表是按線性表的邏輯結構次序依次存放在一組地址連續的存儲單元中
系是一致的
在順序表中實現的基本運算
·刪除
************************************************************************
線性表的鏈式存儲結構中結點的邏輯次序和物理次序不一定相同
了其後繼結點的地址信息(即指針或鏈)
************************************************************************
單鏈表運算
·尾插法
·加頭結點的算法
·查找·按序號
·按值
·插入運算
·刪除運算
************************************************************************
單循環鏈表是一種首尾相接的單鏈表
采用單循環鏈表在實用中多采用尾指針表示單循環鏈表
************************************************************************
雙鏈表就是雙向鏈表
確定
雙鏈表也可以頭尾相鏈接構成雙(向)循環鏈表
雙鏈表上的插入和刪除時間復雜度均為O (
************************************************************************
順序表和鏈表的比較
·鏈表的存儲空間是動態分配
·基於時間
·以插入和刪除操作為主的線性表宜采用鏈表做存儲結構
·若插入和刪除主要發生在表的首尾兩端
第三章 棧和隊列
************************************************************************
棧(Stack)是僅限制在表的一端進行插入和刪除運算的線性表
的修改是按後進先出的原則進行的
************************************************************************
棧的基本運算有六種
·判棧空: StackEmpty(S)
·判棧滿
·進棧
·退棧
·取棧頂元素
************************************************************************
在順序棧中有
·
順序棧中的基本操作有六種
************************************************************************
鏈棧則沒有上溢的限制
鏈棧中的基本操作有五種
************************************************************************
隊列(Queue)是一種運算受限的線性表
一端稱為隊尾(rear)
構
************************************************************************
隊列的基本運算有六種
·判隊空
·判隊滿
·入隊
·出隊
·取隊頭元素
************************************************************************
順序隊列的
為了克服
判定循環隊列是空還是滿
·第二種是少用一個元素空間
·第三種就是用一個計數器記錄隊列中的元素的總數
********************
From:http://tw.wingwit.com/Article/program/sjjg/201311/24001.html