一、整體結構
二、線性結構
2.1 佇列(queue)
佇列是「先進先出」的線性表,就像去食堂打飯排隊,排隊在前的先打到飯,不允許「插隊」,新來的只能排在隊尾。
包含順序佇列和迴圈佇列,在迴圈佇列(cq)中,設頭為front,尾是rear,則
判斷佇列滿的條件為:(cq.rear+ 1)% maxsize = cq.front
判斷隊列為空的條件為: cq.rear = cq.front
2.2 棧(stack)
棧是「先進後出」的線性表,對錶的操作只能在棧頂完成。就像一摞洗好的盤子,洗乙個摞乙個,用的時候總是從最上面取走。
2.3 線性表
2.3.1 順序表
順序表是表中的結點依次存放在一組連續的儲存單元
2.3.2 鍊錶
a)單鏈表
乙個資料元素和乙個指標組成單鏈表的乙個結點,就像火車的每節車廂和車鉤。各個結點在記憶體中的儲存位置不一定連續,可存放於不同的位置。
插入:
解析:插入s結點後,s指向a2的指標式p的next指標,p又指向s。所以:
s->next=p->next,p->next = s刪除:
解析:刪除q結點,原本p指向a2的指標指向了a3,所以:p->next= q->next
b)迴圈鍊錶
最後乙個結點的指標指向第乙個結點,構成乙個環
c)雙鏈表
在單鏈表的每個結點中再設定乙個指向其前驅結點的指標域,這樣每個結點有2個指標
插入:
解析:插入結點x後,q指向a2的指標是a1指向a2的指標,a2的前驅指標指向x,所以有:
q->prior = p;
q->next = q->next;
p->next = q;
q->next->prior = q;
刪除:
解析:刪除a2結點,它的前驅結點的後繼結點指向a3,a2的後繼結點的前驅結點指向a1,所以有:
p->next->prior= p->prior;
p->prior->next= p->next;
三、非線性結構
3.1 圖
a)圖分外無向圖和有向圖,由頂點和邊組成。無向圖頂點的表示(a,b),有向圖頂點的表示
b)頂點的度:無向圖頂點v的度為與該頂點相關聯的邊的數目,有向圖為入度(以頂點v為終點的弧)+ 出度(以頂點v為起點的弧)
c)儲存結構:鄰接矩陣和鄰接表
無向圖的鄰接矩陣:
有向圖的鄰接矩陣:
帶權值有向圖的鄰接表:
d)圖的遍歷:從某個頂點出發系統的訪問圖的每個頂點,並且每個頂點只被訪問一次
3.2 樹
a)相關術語
結點的度:樹上任意結點所擁有的子樹的數目
葉子:度為0的結點
樹的度:一棵樹中所有結點的度的最大值
b)二叉樹的遍歷
前序遍歷:先訪問根結點
,再訪問葉子結點
中序遍歷:先訪問左子樹,再訪問根,最後訪問右子樹
後序遍歷:先訪問左右子樹最後訪問根
例:前序遍歷:abdecf
中序遍歷:dbeafc
後序遍歷:debfca
c)樹和二叉樹的轉換:
前序遍歷不變,樹的中序和二叉樹的後序相同,樹的孩子結點轉為左子樹結點,兄弟結點轉為右子結點
四、查詢
4.1順序查詢:從表的一端開始,按順序對比當前結點與關鍵字是否相等。
asl(平均查詢長度):
(n+1)/2
4.2二分查詢:每次用給定的值與處在表中間位置的資料元素進行比較。asl=log2(n+1) -1
4.3 分塊查詢:根據索引找到相應的塊,再在塊中查詢。asl== log2(n/s + 1) + s/2
五、排序
軟考筆記0608
專案績效跟蹤 外部變更請求 變更控制。評價軟體產品,以確定其使用意圖的適合性。監控進展,決定進度和計畫的狀態,或評價達到目標所用管理方法的有效性。需包括產品描述要求 使用者文件描述要求 程式,資料要求。指在軟體產品發布後,因修正錯誤 提公升效能或其他屬性而進行的軟體修改。包括的型別如下 a 更正性維...
軟考又見軟考
我這地兒 報名截止時間都快到了,3月4日,我才知道開始報名了。大三了,課程少了些。一直想考這個證來著,無奈時間太緊要不就是專業課還沒學。現在已經定下要考本專業研了,方向嘛 唉也說不准,大家都知道這個證是其次的搞技術的話還是能力問題,我的想法考這個是為了梳理專業知識,以備研究生專業課的考試 以後很可能...
軟考 軟考之路
面對軟考你是怎樣的心境呢?從最開始我拿到軟考書開始,感覺好厚呀,還有三門自考,這是要把自己置於何地了呢?但是翻開書本,看到那熟悉的知識,很多都是自考中的知識,這個時候是不是該悔恨當初沒有好好學習自考了呢?一 三遍讀書法 一本書從開始讀,到每一遍的不斷閱讀將書本讀薄,將知識理解,每一遍都是不可缺少的一...