軟考筆記(一)

2021-06-21 09:39:13 字數 2578 閱讀 4566

一、整體結構

二、線性結構

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日,我才知道開始報名了。大三了,課程少了些。一直想考這個證來著,無奈時間太緊要不就是專業課還沒學。現在已經定下要考本專業研了,方向嘛 唉也說不准,大家都知道這個證是其次的搞技術的話還是能力問題,我的想法考這個是為了梳理專業知識,以備研究生專業課的考試 以後很可能...

軟考 軟考之路

面對軟考你是怎樣的心境呢?從最開始我拿到軟考書開始,感覺好厚呀,還有三門自考,這是要把自己置於何地了呢?但是翻開書本,看到那熟悉的知識,很多都是自考中的知識,這個時候是不是該悔恨當初沒有好好學習自考了呢?一 三遍讀書法 一本書從開始讀,到每一遍的不斷閱讀將書本讀薄,將知識理解,每一遍都是不可缺少的一...