版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第=部一一八尹馮凅知識(shí)
第1章數(shù)據(jù)結(jié)構(gòu)與算法
1.1算法
1.算法的基本概念
(I)概念:算法是指一系列解決問(wèn)題的清晰指令。
(2)4個(gè)基本特徹:可行性、確定性、有窮性、擁有足夠的情報(bào)。
(3)兩種基本要素:對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作、算法的控制結(jié)構(gòu)(運(yùn)算和操作時(shí)間的順序)。
(4)設(shè)計(jì)的基本方法:列舉法、歸納法、遞推法、遞歸法、減半遞推技術(shù)和回溯法。
2.算法的復(fù)雜度
(I)算法的時(shí)間復(fù)雜度執(zhí)行算法所需要的計(jì)算工作散。
(2)算法的空間復(fù)雜度:執(zhí)行算法所需的內(nèi)存空間。
1.2數(shù)據(jù)結(jié)構(gòu)的基本概念
數(shù)據(jù)結(jié)構(gòu)指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合,即數(shù)據(jù)的組織形式。其中邏輯結(jié)構(gòu)反映數(shù)據(jù)元素之間邏輯關(guān)系;存
儲(chǔ)結(jié)構(gòu)為數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式,有順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)和散列存儲(chǔ)4種方式。
數(shù)據(jù)結(jié)構(gòu)按各元素之間前后件關(guān)系的復(fù)雜度可劃分為:
(1)線性結(jié)構(gòu):有且只有一個(gè)根節(jié)點(diǎn),且每個(gè)節(jié)點(diǎn)最多有一個(gè)直接前驅(qū)和一個(gè)直接后繼的非空數(shù)據(jù)結(jié)構(gòu)。
(2)非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。
1.3線性表及其順序存儲(chǔ)結(jié)構(gòu)
1.線性表的基本概念
線性結(jié)構(gòu)又稱線性表,線性表是最簡(jiǎn)單也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。
2.線性表的順序存儲(chǔ)結(jié)構(gòu)
·元素所占的存儲(chǔ)空間必須連續(xù)。
·元素在存儲(chǔ)空鳳的位悝是按邏輯順序存放的。
3.線性表的插入運(yùn)算
在第1個(gè)元素之前插入一個(gè)新元素的步驟如下:
步驟一:把原來(lái)第n個(gè)節(jié)點(diǎn)至第i個(gè)節(jié)點(diǎn)依次往后移一個(gè)元素位罰。
步驟二:把新節(jié)點(diǎn)放在第i個(gè)位置上。
步驟三:修正線性表的節(jié)點(diǎn)個(gè)數(shù)。
在最壞悄況下,即插入元素在第一個(gè)位置,線性表中所有元素均需要移動(dòng)。
4.線性表的刪除運(yùn)算
刪除第1個(gè)位臂的元素的步驟如下:
步驟一:把第1個(gè)元素之后不包括第1個(gè)元素的n—1個(gè)元素依次前移一個(gè)位胃;
步驟二:修正線性表的結(jié)點(diǎn)個(gè)數(shù)。
1.4棧和隊(duì)列
1.棧及其基本運(yùn)算
(1)基本概念:棧是一種特殊的線性表,其插入運(yùn)算與刪除運(yùn)算都只在線性表的一端進(jìn)行,也被稱為“先進(jìn)后出“
表或“后進(jìn)先出”表。
·棧頂:允許插入與刪除的一端。
·棧底:棧頂?shù)牧硪欢恕?/p>
·窄棧棧中沒(méi)有元素的棧。
(2)特點(diǎn)。
·棧頂元素是最后被插入和最早被刪除的元素。
·棧底元素是最早被插入和最后被刪除的元素。
·棧有記憶作用。
·在順序存儲(chǔ)結(jié)構(gòu)下,棧的插入和刪除運(yùn)算不需移動(dòng)表中其他數(shù)據(jù)元素。
·棧頂指針top動(dòng)態(tài)反映了棧中元素的變化情況
(3)順序存儲(chǔ)和運(yùn)算:入棧運(yùn)算、退棧運(yùn)算和讀棧頂運(yùn)算。
2.隊(duì)列及其基本運(yùn)算
(1)基本概念:隊(duì)列是指允許在一端進(jìn)行插入,在另一端進(jìn)行刪除的線性表,又稱“先進(jìn)先出”的線性表。
·隊(duì)尾:允許插入的一端,用尾指針指向隊(duì)尾元素。
·排頭:允許刪除的一端,用頭指針指向頭元素的前一位置。
(2)循環(huán)隊(duì)列及其運(yùn)算。
所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位翌繞到第一個(gè)位控,形成邏輯上的環(huán)狀空間。
入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個(gè)新元素。當(dāng)循環(huán)隊(duì)列非空(s=l)且隊(duì)尾指針等千隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列
已滿,不能進(jìn)行入隊(duì)運(yùn)算,這種悄況稱為“上溢"。
退隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)頭位悝退出一個(gè)元素并賦給指定的變益。首先將隊(duì)頭指針進(jìn)一,然后將排頭指針指向
的元素賦給指定的變批。當(dāng)循環(huán)隊(duì)列為空(s=O)時(shí),不能進(jìn)行退隊(duì)運(yùn)算,這種情況稱為'T溢"。
1.5線性鏈表
在定義的鏈表中,若只含有一個(gè)指針域來(lái)存放下一個(gè)元素地址,稱這樣的鏈表為單鏈表或線性鏈表。
在鏈?zhǔn)酱鎯?chǔ)方式中,要求每個(gè)結(jié)點(diǎn)山倆部分組成:一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指
針,稱為指針域。其中指針用千指向該結(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn)(即前件或后件)。
1.6樹和二叉樹
1.樹的基本概念
樹是簡(jiǎn)單的非線性結(jié)構(gòu),樹中有且僅有一個(gè)沒(méi)有前驅(qū)的節(jié)點(diǎn)稱為“根“,其余節(jié)點(diǎn)分成m互不相交的有限栠合Tl,
T2,…,T。,每個(gè)集合又是一棵樹,稱TLrl2,…,工為根結(jié)點(diǎn)的子樹。
·父節(jié)點(diǎn):每一個(gè)節(jié)點(diǎn)只有一個(gè)前件,無(wú)前件的節(jié)點(diǎn)只
有一個(gè),稱為樹的根結(jié)點(diǎn)(簡(jiǎn)稱樹的根)。
·子節(jié)點(diǎn):每一個(gè)節(jié)點(diǎn)可以后多個(gè)后件,無(wú)后件的節(jié)點(diǎn)
稱為葉子節(jié)點(diǎn)。
·樹的度:所有節(jié)點(diǎn)最大的度。
·樹的深度:樹的簸大層次。
2.二叉樹的定義及其基本性質(zhì)
(1)二叉樹的定義:二叉樹是一種非線性結(jié)構(gòu),是有限的節(jié)點(diǎn)集合,該集合為空(空二叉樹)或由一個(gè)根節(jié)點(diǎn)及兩棵
互不相交的左右二叉子樹組成??煞譃闈M二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不
一定是滿二叉樹。二叉樹具有如下兩個(gè)特點(diǎn):
·二叉樹可為空,空的二叉樹無(wú)節(jié)點(diǎn),非空二叉樹有且只有一個(gè)根結(jié)點(diǎn);
·每個(gè)節(jié)點(diǎn)最多可有兩棵子樹,稱為左子構(gòu)和右子樹。
(2)二叉樹的基本性質(zhì)。
性質(zhì)1:在二叉樹的第k層上至多有2k-1個(gè)結(jié)點(diǎn)(k~l)。
性質(zhì)2:深度為m的二叉樹至多有2ll1-1個(gè)結(jié)點(diǎn)。
性質(zhì)3:對(duì)任何一棵二叉樹,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。
性質(zhì)4:具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度至少為[lOg2n]+1,具中[Log2n]表示10g2n的整數(shù)部分。
3.滿二叉樹與完全二叉樹
(l)滿二叉樹:滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。滿二叉
樹在其第1層上有211個(gè)結(jié)點(diǎn)。
從上面滿二叉樹定義可知,二叉樹的每一層上的結(jié)點(diǎn)數(shù)必須都達(dá)到最大,否則就不是滿二叉樹。深度為m的滿
二叉樹有2m-1個(gè)結(jié)點(diǎn)。
(2)完全二叉樹:究全二叉樹是指這樣的二叉樹:除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層
l..只缺少右邊的若干結(jié)點(diǎn)。
如果一棵具有n個(gè)結(jié)點(diǎn)的深度為K的二叉樹,它的每一個(gè)結(jié)點(diǎn)都與深度為k的滿二叉樹中編號(hào)為1—n的結(jié)點(diǎn)
一一對(duì)應(yīng)。
4.二叉樹的存儲(chǔ)結(jié)構(gòu)
二叉樹通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),存儲(chǔ)節(jié)點(diǎn)由數(shù)據(jù)域和指針域(左指針域和右指針域)組成。二叉樹的鏈?zhǔn)酱鎯?chǔ)
結(jié)構(gòu)也稱二叉鏈表,對(duì)滿二叉樹和完全二叉樹可按層次進(jìn)行順序存儲(chǔ)。
5.二叉樹的遍歷
二叉樹的遍歷是指不重復(fù)地訪問(wèn)二叉樹中所有節(jié)點(diǎn),主要指非空二叉樹,對(duì)千空二叉樹則結(jié)束返回。二叉樹的
遍歷包括前序遍歷、中序遍歷和后序遍歷。
(1)前序遍歷。
前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍
歷右子樹;并且,在遍歷左右子樹時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。前序遍歷描述為:
若二叉樹為空,則執(zhí)行空橾作;否則O訪問(wèn)根結(jié)點(diǎn);@前序遍歷左于樹;@前序遍歷右子樹。
(2)中序遍歷。
中序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子
樹這三者中,首先遍歷左予樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹;并月,在遍歷左、右子樹時(shí),仍然先遍歷
左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹。中序遍歷描述為:若二叉樹為空,則執(zhí)行空操作;否則O中序遍歷左
子樹;@訪問(wèn)根結(jié)點(diǎn);@中序遍歷右子樹。
(3)后序遍歷。
后序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪
問(wèn)根結(jié)點(diǎn),并且,在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問(wèn)根結(jié)點(diǎn)。后序遍歷描述為:
若二叉樹為空,則執(zhí)行空操作;否則CD后序遍歷左子樹;@后序遍歷右子樹;@訪問(wèn)根結(jié)點(diǎn)。
1.7查找技術(shù)
(1)順序查找:在線性表中查找指定的元素。
最壞情況下,最后一個(gè)元素才是要找的元素,則需要與線性表中所有元素比較,比較次數(shù)為n。
(2)二分查找:二分查找也稱折半查找,它是一種高效率的查找方法。但二分查找有條件限制,它要求表必須用
順序存儲(chǔ)結(jié)構(gòu),且表中元素必須按關(guān)鍵字有序(升序或降序
均可)排列。對(duì)長(zhǎng)度為n的有序線性表,在最壞悄況下,二分查找法只需比較10g2n次。
1.8排序技術(shù)
(1)交換類排序法。
·冒泡排序:通過(guò)對(duì)待排序序列從后向前或從前向后,依次比較相鄰元素的排序碼,若發(fā)現(xiàn)逆序則交換,使較
大的元素逐漸從前部移向后部或較小的元素逐漸從后部移向前
部,直到所有元素有序?yàn)橹埂?/p>
在朵壞情況下,對(duì)長(zhǎng)度為n的線性表排序,冒泡排序需要比較的次數(shù)為11(11-1)/2。
·快速排序:是迄今為止所有內(nèi)排序算法中速度最快的一種。它的基本思想是:任取待排序序列中的某個(gè)元素
作為基準(zhǔn)(一般取第一個(gè)元素),通過(guò)一趟排序,將待排元素分為左右兩個(gè)子序列,左子序列元素的排序碼均小千
或等千基準(zhǔn)元素的排序碼,右子序列的排序碼則大千基準(zhǔn)元素的排序碼,然后分別對(duì)兩個(gè)子序列繼續(xù)進(jìn)行排序,直
至整個(gè)序列有序。最壞情況下,即每次劃分,只得到一個(gè)序列,時(shí)間效率為0(112)。
(2)插入類排序法。
·簡(jiǎn)單插入排序法:把n個(gè)待排序的元素看成為一個(gè)有序表和一個(gè)無(wú)序表,開始時(shí)有序表中只包含一個(gè)元素,
無(wú)序表中包含有11-l個(gè)元素,排序過(guò)程中每次從無(wú)序表中取出第一個(gè)元素,把它的排序碼依次與有序表元素的排序
碼進(jìn)行比較,將它插入到有序表中的適當(dāng)位翌,使之成為新的有序表。在最壞情況下,即初始排序序列是逆序的清
況下,比較次數(shù)為11Cn-1)/2,移動(dòng)次數(shù)為11(11-1)/2。
·希爾排序法:先將整個(gè)待拌元素序列分割成若干個(gè)子序列(由相陷某個(gè)“增量”的元素組成的)分別進(jìn)行直
接插入排序,待整個(gè)序列中的元素基本有序(增伍足夠?。r(shí),再對(duì)全體元素進(jìn)行一次直接插入排序。
(3)選擇類排序法。
·簡(jiǎn)單選擇排序法:掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面;然后對(duì)剩下的子表采用同樣
的方法,直到子表空為止。最壞悄況下衙要比較11(n-1)/2次。
·堆排序的方法:首先將一個(gè)無(wú)序序列建成堆;然后將堆頂元素(序列中的最大項(xiàng))與堆中最后一個(gè)元素交換
(梟大項(xiàng)應(yīng)該在序列的最后)。不考慮已經(jīng)換到最后的那個(gè)元素,只考慮前11-l個(gè)元素構(gòu)成的子序列,將該子序列調(diào)
整為堆。反復(fù)做步驟@,直到剩下的子序列空為止。在最壞情況下,堆排序法需要比較的次數(shù)為0(1110g2n)。
相關(guān)真考題庫(kù)試題
(1)下列敘述中正確的是(D)
A)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
c)一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒(méi)有直接關(guān)系
【解析】算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所衙要的內(nèi)存空間,算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所面要的
計(jì)算工作品,兩者之間并沒(méi)有直接關(guān)系,答案為D。
(2)下列敘述中正確的是(B)
A)算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)
B)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所衙要的計(jì)算工作董
C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
【解析】算法的效率與問(wèn)題的規(guī)模和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)都有關(guān),A錯(cuò)誤。算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的
計(jì)算工作噩,B正確。由于數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位臂關(guān)系可能與邏輯關(guān)系不同,因此數(shù)據(jù)的邏輯結(jié)構(gòu)和
存儲(chǔ)結(jié)構(gòu)不是一一對(duì)應(yīng)的,C錯(cuò)誤。算法的時(shí)間復(fù)雜度和空間復(fù)雜度沒(méi)有直接的聯(lián)系,D錯(cuò)誤。
(3)下列敘述中正確的是(A)
A)程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B)程序執(zhí)行的效率只取決千程序的控制結(jié)構(gòu)~
c)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D)以上說(shuō)法均錯(cuò)誤
【解析】程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。
(4)下列關(guān)千棧的敘述中,正確的是(C)
A)棧底元素一定是最后入棧的元素B)棧頂元素一定是最先人棧的元素
c)棧操作遵循先進(jìn)后出的原則D)以上說(shuō)法均錯(cuò)誤
【解析】棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是
最后才能被刪除的元素。棧的修改是按后進(jìn)先出的原則進(jìn)行的。因此,棧稱為先進(jìn)后出表,或“后進(jìn)先出”表,所
以選擇C。
(5)-個(gè)棧的初始狀態(tài)為空。殘將元素I,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是(C)
A)1,2,3,A,B,CB)C,B,A,1,2,3C)C,B,A,3,2,1D)1,2,3,C,B,A
【解析】棧的修改是按后進(jìn)先出的原則進(jìn)行的,所以順序應(yīng)寫入棧順序相反,故選C。
(6)下列與隊(duì)列結(jié)構(gòu)有關(guān)聯(lián)的是(D)
A)函數(shù)的遞歸調(diào)用B)數(shù)組元素的引用c)多重循環(huán)的執(zhí)行D)先到先服務(wù)的作業(yè)調(diào)度
【解析】隊(duì)列的修改是依先進(jìn)先出的原則進(jìn)行的,D正確。
(7)下列敘述中正確的是(A)
A)循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化
B)循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化
c)循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化
D)以上說(shuō)法都不對(duì)
【解析】在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一·個(gè)位翌。
因此,從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位宵之間所有的元素均為隊(duì)列中的元素。所以
循環(huán)隊(duì)列中的元素個(gè)數(shù)與隊(duì)頭指針和隊(duì)尾指針的變化而變化,A正確。
(8)設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(l:35),初始狀態(tài)為front=rear=35。現(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后.front=15,re扛=
15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為(D)
A)15B)16C)20D)O或35
【解析】在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。
在循環(huán)隊(duì)列中進(jìn)行出隊(duì)、人隊(duì)操作時(shí),頭尾指針仍要加1,朝前移動(dòng)。只不過(guò)當(dāng)頭尾指針指向向謚上界時(shí),其加1
操作的結(jié)果是指向向量的下界0。由千入隊(duì)時(shí)尾指針向前追趕頭指針,出隊(duì)時(shí)頭指針向前追趕尾指針,故隊(duì)空和隊(duì)
滿時(shí),頭尾指針均相等。答案為D選項(xiàng)。
(9)下列敘述中正確的是:(C)
A)線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少千順序存儲(chǔ)結(jié)構(gòu)
B)線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的
c)線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的.
D)以上說(shuō)法均錯(cuò)誤
【解析】線性表的順序存儲(chǔ)結(jié)構(gòu)具備如下兩個(gè)基本特征:CD線性表中的所有元素所占的存儲(chǔ)空間是連續(xù)的:@線性
表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。用一組任意的存儲(chǔ)單元來(lái)依次存放線性表的結(jié)點(diǎn),這組存
儲(chǔ)單元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位宵上的。因此C正確。
(lO)下列鏈表中,其邏輯結(jié)構(gòu)屬千非線性結(jié)構(gòu)的是(A)
A)二叉鏈表B)循環(huán)鏈表C)雙向鏈表D)帶鏈的棧
【解析】在定義的鏈表中,若只含有一個(gè)指針域來(lái)存放下一個(gè)元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈
的??梢杂脕?lái)收栠計(jì)算機(jī)存儲(chǔ)空間中所有空閑的存儲(chǔ)結(jié)點(diǎn),是線性表。在單鏈表中的結(jié)點(diǎn)中增加一個(gè)指針域指向它
的直接前件,這樣的鏈表,就稱為雙向鏈表(一個(gè)結(jié)點(diǎn)中含有兩個(gè)指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的
特征,但又不需要增加額外的存貯空間,僅對(duì)表的鏈接方式稍
做改變,使得對(duì)表的處理更加方便靈活,屬千線性鏈表。二叉鏈表是二叉樹的物理實(shí)現(xiàn),是一種存儲(chǔ)結(jié)構(gòu),不屬千
線性結(jié)構(gòu)。答案為A選項(xiàng)。
(11)-棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為(B)
A)219B)229C)230D)231
【解析】二叉樹中,度為0的節(jié)點(diǎn)數(shù)等于度為2的節(jié)點(diǎn)數(shù)加l,即n2=n0-1,葉子節(jié)點(diǎn)即度為O,則n2=79,總結(jié)
點(diǎn)數(shù)為nO+nI+n2=80+70+79-229,答案為B。
(12)某二叉樹共有12個(gè)結(jié)點(diǎn),共中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)(D)
A)3B)6C)8D)12
【解析】二叉樹中,度為0的節(jié)點(diǎn)數(shù)等千度為2的節(jié)點(diǎn)數(shù)加I,即n2=nO-1,葉子節(jié)點(diǎn)即度為0,n0=1,則n2=0,
總節(jié)點(diǎn)數(shù)為12=n0+nl+n2=l+nl+O,則度為1的節(jié)點(diǎn)數(shù)nl=ll,故深度為12,選D。
(13)對(duì)下列二叉樹進(jìn)行前序遍歷的結(jié)果為(C)
囚
/、
已
A)DYBEAFCZX8)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ
【解析】前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最
后遍歷右子樹;并且,在遍歷左右子樹時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。前序遍歷描述
為:若二叉樹為空,則執(zhí)行空操作。否則:O訪問(wèn)根結(jié)點(diǎn);@前序遍歷左子樹;@前序遍肋右子樹,C正確。
(14)對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序.最壞情況下面要比較的次數(shù)為?
A)9B)10C)45D)90
【解析】冒泡法是在掃描過(guò)程中逐次比較相鄰兩個(gè)元素的大小,最壞的情況是每次比較都要將相鄰的兩個(gè)元素互換,
需要互換的次數(shù)為9+8+7+6+5+4+3+2+l=45,選C。
(15)對(duì)長(zhǎng)度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為(D)
A)nB)n-1C)n(n-1)D)n(n-1)/2
【解析】快速排序最壞情況就是每次選的基準(zhǔn)數(shù)都和其他數(shù)做過(guò)比較,共需比較(n—l)+(n-2)+…+l=n(n-1)/2,選D
第2章程序設(shè)計(jì)基礎(chǔ)
2.1程序設(shè)計(jì)方法與風(fēng)格
(l)設(shè)計(jì)方法:指設(shè)計(jì)、編制、調(diào)試程序的方法和過(guò)程,主要有結(jié)構(gòu)化程序設(shè)計(jì)方法、軟件工程方法和面向?qū)ο蠓椒ā?/p>
(2)設(shè)計(jì)風(fēng)格:良好的設(shè)計(jì)風(fēng)格要注重瀝程序文檔化、數(shù)據(jù)說(shuō)明方法、語(yǔ)旬的結(jié)構(gòu)和輸入輸出。
2.2結(jié)構(gòu)化程序設(shè)計(jì)
1.結(jié)構(gòu)化程序設(shè)計(jì)的原則
結(jié)構(gòu)化程序設(shè)計(jì)強(qiáng)調(diào)程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡消晰的結(jié)構(gòu)。
(1)自頂向下:即先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。
(2)逐步求精:對(duì)復(fù)雜問(wèn)題,應(yīng)設(shè)計(jì)一些子目標(biāo)做過(guò)渡,逐步細(xì)化。
(3)模塊化:把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊;
(4)限制使用GOTO語(yǔ)句。
2.結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點(diǎn)
(I)順序結(jié)構(gòu):自始至終嚴(yán)格按照程序中語(yǔ)句的先后順序逐條執(zhí)行,是最基本、最普遍的結(jié)構(gòu)形式。
(2)選擇結(jié)構(gòu):又稱為分支結(jié)構(gòu),包括簡(jiǎn)單選擇和多分支選擇結(jié)構(gòu)。
(3)重復(fù)結(jié)構(gòu):又稱為循環(huán)結(jié)構(gòu),根據(jù)給定的條件,判斷是否福要重復(fù)執(zhí)行某一相同的或類似的程序段。
結(jié)構(gòu)化程序設(shè)計(jì)中,應(yīng)注意事項(xiàng):
(1)使用程序設(shè)計(jì)語(yǔ)言中的順序、選擇、循環(huán)等有限的控制結(jié)構(gòu)表示程序的控制邏輯。
(2)選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口。
(3)程序語(yǔ)言組成容易識(shí)別的塊,每塊只有一個(gè)入口和一個(gè)出口。
(4)復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)?!?/p>
(5)語(yǔ)言中所沒(méi)有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來(lái)模擬。
(6)盡墾避免GOTO語(yǔ)句的使用。
2.3面向?qū)ο蟮某绦蛟O(shè)計(jì)
面向?qū)ο蠓椒ǖ谋举|(zhì)是主張從客觀世界固有的事物出發(fā)來(lái)構(gòu)造系統(tǒng),強(qiáng)調(diào)建立的系統(tǒng)能映射問(wèn)題域。
·對(duì)象:用來(lái)表示客觀世界中任何實(shí)體,可以是任何有明確邊界和意義的東西。
·類:具有共同屬性、共同方法的對(duì)象的集合。
·實(shí)例:一個(gè)具體對(duì)象就是其對(duì)應(yīng)分類的一個(gè)實(shí)例。
·消息:實(shí)例間傳遞的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
·繼承:使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。
·多態(tài)性:指對(duì)象根據(jù)所接受的信息而作出動(dòng)作,同樣的信息被不同的對(duì)象接收時(shí)有不同行動(dòng)的現(xiàn)象。
面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn):與人類習(xí)慣的思維方法一致、穩(wěn)定性好、可重用性好、易千開發(fā)大型軟件產(chǎn)品、可維護(hù)
性好。
相關(guān)真考題庫(kù)試題
(l)結(jié)構(gòu)化程序設(shè)計(jì)中,下面對(duì)goto語(yǔ)句使用描述正確的是(C)
A)禁止使用goto語(yǔ)句B)使用goto語(yǔ)句程序效率高
C)應(yīng)避免濫用goto語(yǔ)句D)以上說(shuō)法均錯(cuò)誤
【解析】結(jié)構(gòu)化程序沒(méi)計(jì)中,要注意盡員避免goto語(yǔ)句的使用,故選C。
(2)下面對(duì)對(duì)象概念描述正確的是(A)
A)對(duì)象間的通信靠消息傳遞B)對(duì)象是名字和方法的封裝體
C)任何對(duì)象必須有繼承性D)對(duì)象的多態(tài)性是指一個(gè)對(duì)象有多個(gè)操作
【解析】對(duì)象之間進(jìn)行通信的構(gòu)造叫做消息,A正確。多態(tài)性是指同一個(gè)操作可以是不同對(duì)象的行為,D錯(cuò)誤。對(duì)
象不一定必須有繼承性,C錯(cuò)誤。封裝性是指從外面看只能看到對(duì)象的外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體
結(jié)構(gòu)以及實(shí)現(xiàn)操作,B錯(cuò)誤。
第3章軟件工程基礎(chǔ)
3.1軟件工程基本概念
1.軟件的定義與特點(diǎn)
(1)定義:軟件是指與計(jì)算機(jī)系統(tǒng)的操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔和數(shù)據(jù)。
(2)特點(diǎn)。
·是邏輯實(shí)體,有抽象性。
·生產(chǎn)沒(méi)有明顯的制作過(guò)程。'
·運(yùn)行使用期間不存在磨損、老化問(wèn)題。
·開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)有依賴件,受計(jì)算機(jī)系統(tǒng)的限制,導(dǎo)致了軟件移柏問(wèn)題。
·復(fù)雜性較高,成本昂貴。
·開發(fā)涉及諸多社會(huì)因素。
2.軟件的分類
軟件可分應(yīng)用軟件、系統(tǒng)軟件和支撐軟件3類。
(I)應(yīng)用軟件是特定應(yīng)用領(lǐng)域內(nèi)專用的軟件。
(2)系統(tǒng)軟件居千計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層,是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提
供各種服務(wù)的軟件。
(3)支撐軟件介千系統(tǒng)軟件和應(yīng)用軟件之間,是支援其它軟件的開發(fā)與維護(hù)的軟件。
3.軟件危機(jī)與軟件工程
軟件危機(jī)指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)中遇到的一系列嚴(yán)重問(wèn)題。軟件工程是應(yīng)用千計(jì)算機(jī)軟件的定義、開發(fā)和維
護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序,包括軟件開發(fā)技術(shù)和軟件工程管理。
4.軟件生命周期
軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用的過(guò)程稱為軟件生命周期。
在國(guó)家標(biāo)準(zhǔn)中,軟件生命周期劃分為8個(gè)階段:軟件定義期:包括問(wèn)題定義、可行性研究和祈求分析3個(gè)階段。@
軟件開發(fā)期:包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試4個(gè)階段。@運(yùn)行維護(hù)期:即運(yùn)行維護(hù)階段。
5.軟件工程的原則
軟件工程的原則包括:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、究備性和可驗(yàn)證性。
3.2結(jié)構(gòu)化分析方法
需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過(guò)程,可概括為:需求獲取、需求分析、編寫需求規(guī)格說(shuō)明
書和困求評(píng)審。
1.常用的分析方法
·結(jié)構(gòu)化分析方法:其實(shí)質(zhì)著眼千數(shù)據(jù)流,自頂向下,逐層分解.建立系統(tǒng)的處理流程。
·面向?qū)ο蠓治龇椒ā?/p>
2.結(jié)構(gòu)化分析常用工具
結(jié)構(gòu)化分析常用工具包括數(shù)據(jù)流圖、數(shù)字字典(核心方法)、判斷樹和判斷表。
(1)數(shù)據(jù)流圖:即DFD圖,以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過(guò)程,它只反映系統(tǒng)必須完成的邏輯功能,
是一種功能模型。符號(hào)名稱作用:
·箭頭代表數(shù)據(jù)流,沿箭頭方向傳送數(shù)據(jù)的通道
·圓或橢圓代表加工,輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出
·雙杠代表存儲(chǔ)文件,表示處理過(guò)程中存放各種數(shù)據(jù)文件
·方框代表源和潭,表示系統(tǒng)和環(huán)境的接口
(2)數(shù)據(jù)字典:結(jié)構(gòu)化分析方法的核心。數(shù)據(jù)字典是對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確的、
嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對(duì)千輸入、輸出、存儲(chǔ)成分和中間計(jì)算結(jié)果有共同的理解。
(3)判定樹:使用判定樹進(jìn)行描述時(shí),應(yīng)先從問(wèn)題定義的文字描述中分消判定的條件和判定的結(jié)論,根據(jù)描述材料中
的連接詞找出判定條件之間的從屈關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹。
(4)判定表:與判定樹相似,當(dāng)數(shù)據(jù)流圖中的加工要依賴千多個(gè)邏輯條件的取值,即完成該加工的一組動(dòng)作是由千某
一組條件取伯的組合引發(fā)的,使用判定表比較適宜。
3.軟件需求規(guī)格說(shuō)明書
軟件需求規(guī)格說(shuō)明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。
(1)軟件需求規(guī)格說(shuō)明書的作用:
O便千用戶、開發(fā)人員進(jìn)行理解和交流;
@反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);
@作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。
(2)軟件需求規(guī)格說(shuō)明書的內(nèi)容:O概述;@數(shù)據(jù)描述;@功能描述;@性能描述;@參考文獻(xiàn);@附錄。
(3)軟件需求規(guī)格說(shuō)明書的特點(diǎn):0正確性;@無(wú)歧義性;@完整性;@可驗(yàn)證性;@一致性;@可理解性;?可修
改性;@可追蹤性。
3.3結(jié)構(gòu)化設(shè)計(jì)方法
1.軟件設(shè)計(jì)的基本概念和方法
軟件設(shè)計(jì)是一個(gè)把軟件需求轉(zhuǎn)換為軟件表示的過(guò)程。
(1)基本原理:抽象、模塊化、信息隱藏、模塊獨(dú)立性(度量標(biāo)準(zhǔn):耦合性和內(nèi)聚性,高耦合、低內(nèi)聚)。
(2)基本思想:將軟件設(shè)計(jì)成由相對(duì)獨(dú)立、單一功能的模塊組成的結(jié)構(gòu)。
2.概要設(shè)計(jì)
(1)4個(gè)任務(wù):設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)、編寫概要設(shè)計(jì)文檔、概要設(shè)計(jì)文檔評(píng)審。
(2)面向數(shù)據(jù)流的設(shè)計(jì)方法:數(shù)據(jù)流圖的估息分為交換流和事物流,結(jié)構(gòu)形式有交換型和事務(wù)型。
3.詳細(xì)設(shè)計(jì)的工具
詳細(xì)設(shè)計(jì)的工具包括:
·圖形工具:程序流程圖、N-S、PAD、HIPO。
·表格工具:判定表。
·語(yǔ)言工具:PDL(偽碼)。
3.4軟件測(cè)試
l.目的為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。
2.準(zhǔn)則
·所有側(cè)試應(yīng)追溯到用戶需求。
·嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除鍘試的隨意性。
·充分注意測(cè)試中的群媒現(xiàn)象。
·程序員應(yīng)避免檢查自己的程序。
·窮舉測(cè)試不可能。
·妥善保存設(shè)計(jì)計(jì)劃、側(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告。
3.軟件測(cè)試技術(shù)和方法
軟件測(cè)試的方法按是否衙要執(zhí)行被測(cè)軟件的角度,可分為靜態(tài)側(cè)試和動(dòng)態(tài)測(cè)試,按功能分為白盒測(cè)試和黑盒測(cè)試。
(I)白盒測(cè)試:根據(jù)程序的內(nèi)部邏輯設(shè)計(jì)測(cè)試用例,主要方法有邏輯覆蓋側(cè)試、基本路徑測(cè)試等。
(2)黑盒測(cè)試:根據(jù)規(guī)格說(shuō)明書的功能來(lái)設(shè)計(jì)測(cè)試用例,主要診斷方法有等價(jià)劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、
因果圖法等主要用千軟件確認(rèn)測(cè)試。
4.軟件測(cè)試的實(shí)施
軟件測(cè)試是保證軟件質(zhì)撾的重要手段,軟件測(cè)試是一個(gè)過(guò)程,其測(cè)試流程是該過(guò)程規(guī)定的程序,目的是使軟件測(cè)試
工作系統(tǒng)化。軟件測(cè)試過(guò)程分4個(gè)步驟,即單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試和系統(tǒng)測(cè)試。
單元測(cè)試是對(duì)軟件設(shè)計(jì)的最小單位-~模塊(程序單元)進(jìn)行正確性檢驗(yàn)測(cè)試。
單元測(cè)試的目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。
單元測(cè)試的依據(jù)是詳細(xì)的設(shè)計(jì)說(shuō)明書和源程序。
單元測(cè)試的技術(shù)可以采用靜態(tài)分析和動(dòng)態(tài)側(cè)試。
3.5程序的調(diào)試
(I)任務(wù):診斷和改正程序中的錯(cuò)誤。
(2)調(diào)試方法:強(qiáng)行排錯(cuò)法、回溯法和原因排除法。
相關(guān)真考題庫(kù)試題
(I)構(gòu)成計(jì)算機(jī)軟件的是(D)
A)源代碼B)程序和數(shù)據(jù)C)程序和文檔D)程序、數(shù)據(jù)及相關(guān)文檔
【解析】軟件指的是計(jì)算機(jī)系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔,選D。
(2)下面不屬于軟件需求分析階段主要工作的是(A)
A)福求變更申請(qǐng)B)福求分析c)面求評(píng)審D)祈求獲取
【解析】需求分析階段的工作可概括為4個(gè)方面:0需求獲取。@需求分析。@編寫需求規(guī)格說(shuō)明書。@齋求審評(píng)。
(3)下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是(A)
A)系統(tǒng)結(jié)構(gòu)圖B)數(shù)據(jù)字典(DD)C)數(shù)據(jù)流程圖(DFD圖)D)判定表
【解析】結(jié)構(gòu)化方法軟件需求分析工具主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹和判定表。
(4)數(shù)據(jù)字典(DD)所定義的對(duì)象都包含千(A)
A)數(shù)據(jù)流圖(DFD圖)B)程序流程圖C)軟件結(jié)構(gòu)圖D)方框圖
【解析】在數(shù)據(jù)流圖中,對(duì)所有元素都進(jìn)行了命名,所有名字的定義栠中起來(lái)就構(gòu)成了數(shù)據(jù)字典。因此選A,而B、
C、D都不符合
(5)軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面不屬千開發(fā)階段任務(wù)的是(C)
A)測(cè)試B)設(shè)計(jì)c)可行性研究D)實(shí)現(xiàn)
【解析】開發(fā)階段包括分析、設(shè)計(jì)和實(shí)施兩類任務(wù)。其中分析、設(shè)計(jì)包括需求分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)3個(gè)階段,
實(shí)施則包括編碼和測(cè)試兩個(gè)階段,C不屬千開發(fā)階段。
(6)軟件需求規(guī)格說(shuō)明書的作用不包括(D)
A)軟件驗(yàn)收的依據(jù)B)用戶與開發(fā)人員對(duì)軟件要做什么的共同理解
C)軟件設(shè)計(jì)的依據(jù)D)軟件可行性研究的依據(jù)
【解析】軟件需求規(guī)格說(shuō)明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。軟件需求規(guī)格說(shuō)明書有以
下幾個(gè)方面的作用。CD便于用戶、開發(fā)人員進(jìn)行理解和交流,B正確;@反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開
發(fā)工作的基礎(chǔ)和依據(jù),C正確;@作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù),A正確。
(7)下面不屬千軟件設(shè)計(jì)階段任務(wù)的是(C)
A)軟件總體設(shè)計(jì)B)算法設(shè)計(jì)C)制定軟件確認(rèn)側(cè)試計(jì)劃D)數(shù)據(jù)庫(kù)設(shè)計(jì)
【解析】從技術(shù)觀點(diǎn)上看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過(guò)程設(shè)計(jì)。所以A、B、D正確,C
為軟件側(cè)試階段的任務(wù)。
(8)軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是(C)
A)低內(nèi)聚低耦合B)高耦合高內(nèi)聚C)高內(nèi)聚低耦合,D)以上說(shuō)法均錯(cuò)誤
I解析】根據(jù)軟件設(shè)計(jì)原理提出如下優(yōu)化準(zhǔn)則:@劃分模塊時(shí),盡量做到高內(nèi)聚、低耦合,保持模塊相對(duì)獨(dú)立性,
并以此原則優(yōu)化初始的軟件結(jié)構(gòu)。@一個(gè)模塊的作用范圍應(yīng)在其控制范圍之內(nèi),且判定所在的模塊應(yīng)與受其影響的
模塊在層次上盡垃靠近。@軟件結(jié)構(gòu)的深度、寬度、扇人、扇出應(yīng)適當(dāng)。@模塊的大小要適中。c正確。
(9)下面屈于黑盒測(cè)試方法的是(C)
A)語(yǔ)句覆蓋B)邏輯覆蓋C)邊界值分析D)路徑覆蓋
【解析】黑盒測(cè)試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例。在使用黑盒測(cè)試法時(shí),手頭
只需要有程序功能說(shuō)明就可以了。黑盒測(cè)試法分等價(jià)類劃分法、邊界值分析法和錯(cuò)誤推側(cè)法,答案為C。而A、B、
D均為白盒測(cè)試方法。
(10)下面屬于白盒溯試方法的是(B)
A)等價(jià)類劃分法B)邏輯覆蓋C)邊界值分析法D)錯(cuò)誤推測(cè)法
【解析】白盒測(cè)試法主要有邏輯覆蓋、基本路徑測(cè)試等。邏輯覆蓋側(cè)試包括語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件
覆蓋、判斷一條件覆蓋,選擇B。其余為黑盒測(cè)試法。
(11)下面不屬于軟件測(cè)試實(shí)施步驟的是(B)
A)免成側(cè)試B)回歸測(cè)試C)確認(rèn)測(cè)試D)單元測(cè)試
【解析】軟件測(cè)試主要包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)剌試。
第4章數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)
4.1數(shù)據(jù)庫(kù)系統(tǒng)的基本概念
(1)數(shù)據(jù)(DatA):描述事物的符號(hào)記錄。
(2)數(shù)據(jù)庫(kù)(DataBase):長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)塊合。
(3)數(shù)據(jù)庫(kù)管理系統(tǒng)的概念
數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的
數(shù)據(jù)組織、數(shù)據(jù)橾作、數(shù)據(jù)維護(hù)、數(shù)據(jù)控制及保護(hù)和數(shù)據(jù)服務(wù)等。為完成以上6個(gè)功能,DBMS提供了相應(yīng)的數(shù)據(jù)
語(yǔ)言;數(shù)據(jù)定義語(yǔ)言(負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建);數(shù)據(jù)操縱語(yǔ)言(負(fù)責(zé)數(shù)據(jù)的操縱);數(shù)據(jù)控制
語(yǔ)言(負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義)。數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它位千用戶和操作系統(tǒng)之間,從
軟件分類的角度來(lái)說(shuō),屬千系統(tǒng)軟件。
(4)數(shù)據(jù)庫(kù)技術(shù)發(fā)展經(jīng)歷了3個(gè)階段。
人工管理階段一文件系統(tǒng)階段一數(shù)據(jù)庫(kù)系統(tǒng)階段
(5)數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn):焦成性、高共享性、低冗余性、數(shù)據(jù)獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制等。
(6)數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部機(jī)構(gòu)體系:三級(jí)模式(概念模式、內(nèi)模式、外模式)和二級(jí)映射(外模式/概念模式的映射、
概念模式/內(nèi)模式的映射)構(gòu)成了數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的抽象結(jié)構(gòu)體系。
4.2數(shù)據(jù)模型
數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,描述的內(nèi)容有數(shù)據(jù)結(jié)構(gòu)、
數(shù)據(jù)操作和數(shù)據(jù)約束。有3個(gè)層次:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
(l)E-R模型:提供了表示實(shí)體、屬性和聯(lián)系的方法。
實(shí)體間聯(lián)系有“一對(duì)一”、“一對(duì)多”和“多對(duì)多”。
E-R橾型用E-R圖來(lái)表示。
(2)層次模型:利用樹形結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系,其中節(jié)點(diǎn)是實(shí)體,樹枝是聯(lián)系,從上到下是一對(duì)多關(guān)系。
(3)網(wǎng)狀模型:用網(wǎng)狀結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系,是層次模型的擴(kuò)展。網(wǎng)絡(luò)模型以記錄型為節(jié)點(diǎn),反映現(xiàn)實(shí)中較為
復(fù)雜的事物聯(lián)系。
(4)關(guān)系模型:采用二維表(由表框架和表的元組組成)來(lái)表示,可進(jìn)行數(shù)據(jù)查詢、增加、刪除及修改操作。關(guān)系模
型允許定義“實(shí)體完整性”、"參照完整性”和“用戶定義的完整性”三種約束。
·鍵(碼):二維表中唯一能標(biāo)識(shí)元組的最小屈性渠。
·候選鍵(候選碼):二維表中可能有的多個(gè)鍵。
·主鍵:被選取的一個(gè)使用的鍵。
4.3關(guān)系代數(shù)
(I)關(guān)系代數(shù)的基本運(yùn)算:投影、選擇、笛卡爾積。
(2)關(guān)系代數(shù)的擴(kuò)充運(yùn)算:交、連接與自然連接、除。
4.4數(shù)據(jù)庫(kù)設(shè)計(jì)與管理
1.數(shù)據(jù)庫(kù)設(shè)計(jì)概述
·基本思想:過(guò)程迭代和逐步求精。
·方法:面向數(shù)據(jù)的方法和面向過(guò)程的方法。
·設(shè)計(jì)過(guò)程:需求分析一概念設(shè)計(jì)一邏輯設(shè)計(jì)一物理
設(shè)計(jì)一編碼一測(cè)試一運(yùn)行一進(jìn)一步修改。
2數(shù)據(jù)庫(kù)設(shè)計(jì)的需求分析
需求收集和分析是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一階段,常用結(jié)構(gòu)化分析方法(自頂向下、逐層分解)和面向?qū)ο蟮姆椒ǎ?/p>
主要工作有繪制數(shù)據(jù)流程圖、數(shù)據(jù)分析、功能分析、確定功能處理模塊和數(shù)據(jù)間關(guān)系。
數(shù)據(jù)字典:包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和處理過(guò)程,是對(duì)系統(tǒng)中數(shù)據(jù)的詳盡描述。
3.?dāng)?shù)據(jù)庫(kù)的設(shè)計(jì)
(I)數(shù)據(jù)庫(kù)的概念設(shè)計(jì):分析數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆河北省棗強(qiáng)中學(xué)高三2月11日專項(xiàng)練習(xí)數(shù)學(xué)試題
- 2024屆河北省滄州鹽山中學(xué)高三第二學(xué)期聯(lián)合教學(xué)質(zhì)量調(diào)研數(shù)學(xué)試題試卷
- 山東省德州市平原縣三校聯(lián)考2024-2025學(xué)年五年級(jí)(上)期中語(yǔ)文試卷(有答案)
- 黑龍江省-2024年-網(wǎng)格員-下半年筆試真題卷
- 2024年zz學(xué)校園網(wǎng)絡(luò)安全管理制度(2篇)
- 三八婦女節(jié)活動(dòng)活動(dòng)方案例文(4篇)
- 物聯(lián)網(wǎng)安全導(dǎo)論
- 固態(tài)電池制造技術(shù)及應(yīng)用前景考核試卷
- 體育場(chǎng)滑冰場(chǎng)冰面平整度控制考核試卷
- 工業(yè)互聯(lián)網(wǎng)安全 課件 項(xiàng)目7 工業(yè)互聯(lián)網(wǎng)安全應(yīng)急處置
- 變頻電機(jī)參數(shù)規(guī)格-YP2
- 廈門廚余垃圾現(xiàn)狀
- 煤礦建設(shè)工程施工技術(shù)資料
- 科技創(chuàng)新政策解讀PPT課件
- 面試信息登記表
- 讀秀學(xué)術(shù)搜索平臺(tái)PPT課件
- 市質(zhì)量獎(jiǎng)中層領(lǐng)導(dǎo)座談會(huì)準(zhǔn)備的問(wèn)題
- 優(yōu)秀學(xué)生寢室獎(jiǎng)勵(lì)制度
- 動(dòng)畫運(yùn)動(dòng)規(guī)律自然現(xiàn)象
- 液壓設(shè)計(jì)常用資料密封溝槽尺寸
- AQL抽樣檢驗(yàn)表(最新版本)
評(píng)論
0/150
提交評(píng)論