[渝粤教育] 西北大学 数据结构 参考 资料
教育
-數據結構-章節資料考試資料-西北大學【】
數據結構的基礎概念隨堂測驗
1、【單選題】一個抽象類型包括數據對象、 和一組處理數據的操作。
A、數據對象中各元素間的結構關系
B、數據元素集
C、接口
D、數據對象集
參考資料【 】
2、【填空題】抽象數據類型具有 、信息隱蔽的特點。
A、
參考資料【 】
第2講數據結構的內容隨堂測驗
1、【判斷題】線性結構只能用順序結構來存放,非線性結構只能用非順序結構來存放。( )
A、正確
B、錯誤
參考資料【 】
2、【填空題】1、數據結構的邏輯結構分為集合、線性、層次和 四種。
A、
參考資料【 】
3、【填空題】2、數據結構的存儲結構分為 和非順序 兩種。
A、
參考資料【 】
4、【填空題】3、在線性結構、樹形結構和圖結構中,數據元素之間分別存在著一對一、一對多和 聯系。
A、
參考資料【 】
第3講數據結構與C語言表示隨堂測驗
1、【單選題】當需要用一個形式參數直接改變對應實參的值時,該形式參數應說明為 。
A、與實參同類型指針參數
B、不需要參數
C、與實參同類型的參數
D、全局變量
參考資料【 】
第4講算法性能評價隨堂測驗
1、【單選題】1、執行下面的程序段的時間復雜度為 。for(int i=0;im;i++) for(int j=0;jn;j++) a[i][j]=ij;
A、O()
B、O()
C、O(mn)
D、O (m+n)
參考資料【 】
2、【單選題】2、執行下面程序段時,語句S的執行次數為 。for(int i=0;i=n;i++) for(int j=0;ji;j++) S;
A、
B、
C、n(n+1)
D、
參考資料【 】
第5講算法與算法描述隨堂測驗
1、【單選題】算法設計的要求是:正確性、可讀性 、 和高效率和低存儲 。
A、確定性
B、健壯性
C、可行性
D、有限性
參考資料【 】
2、【單選題】算法具有 有限性、確定性、 、輸入、輸出五大特性。
A、可行性
B、可讀性
C、健壯性
D、正確性
參考資料【 】
第一章 單元測試
1、【單選題】下面程序段的時間復雜度為( )。for(int i=0;im;i++) for(int j=0;jn;j++) a[i][j]=ij;
A、O(m2)
B、O(n2)
C、O(mn)
D、O(m+n)
參考資料【 】
2、【單選題】執行下面程序段時,語句S的執行次數為( )。for(int i=0;i=n;i++) for(int j=0;j=i;j++) S;
A、nn
B、nn/2
C、(n+1)(n+2)/2
D、n(n+1)/2
參考資料【 】
3、【單選題】評價一個算法性能好壞的最重要標準是( )。
A、算法的魯棒性
B、算法的可讀性
C、算法的時間復雜度和空間復雜度
D、算法的正確性
參考資料【 】
4、【單選題】算法的時間復雜度與( )有關。
A、問題規模
B、計算機硬件性能
C、編譯程序質量
D、程序設計語言
參考資料【 】
5、【單選題】算法分析的主要任務是分析( )。
A、算法是否具有較好的可讀性
B、算法中是否存在語法錯誤
C、算法的功能是否符合要求
D、算法的執行時間與所需空間與問題規模的關系
參考資料【 】
6、【單選題】算法分析的目的是( )。
A、找出數據結構的合理性
B、研究算法中輸入和輸出的關系
C、分析算法的時空效率以求改進
D、分析算法的可讀性
參考資料【 】
7、【單選題】數據的最小單位是( )。
A、數據項
B、數據類型
C、數據元素
D、數據變量
參考資料【 】
8、【單選題】某算法的時間復雜度是O(nn),表明該算法的( )。
A、問題規模是nn
B、問題規模與nn正比
C、執行時間與nn正比
D、執行時間等于nn
參考資料【 】
9、【單選題】如下程序段: for(i=1;i=n-1;i++) for(j=i+1;j=n;j++) x=x+1;其中語句x=x+1執行的語句頻度為( )。
A、nn
B、n(n-1)/2
C、n*(n+1)/2
D、n*(n-1)
參考資料【 】
10、【單選題】以下算法的時間復雜度為( )。if (n = 0) { for(int i = 0; i n; i++) for(int j = 0; j n; j++) printf(輸入數據大于等于零\n); } else { for(int j = 0; j n; j++) printf(輸入數據小于零\n); }
A、O(1)
B、O(nn+n)
C、O(n)
D、O(nn)
參考資料【 】
11、【單選題】在數組A[0…n-1]中查找給定值K的算法大致如下: i=n-1; while(i=0 (A[i]!=k)) i–; return i; 該算法的時間復雜度為( )。
A、O(n-i+1)
B、O(n-i)
C、O(n)
D、無法確定
參考資料【 】
12、【單選題】下面算法的時間復雜度為( )。x=100; y=100;while(y0) if(x100) {x=x-10; y–;} else x++;
A、O(n)
B、O(100)
C、O(1)
D、O(nn)
參考資料【 】
13、【單選題】假設sqrt(n)函數中涉及的算法時間復雜度為O(1),那么下面的算法是判斷n是否為素數,其時間復雜度為( )。void prime(int n){ for (i=2; isqrt(n) (n % i)!=0; i++) ; if (isqrt(n)) printf(%d is a prime number, n); else printf(%d is not a prime number, n);}
A、O(n)
B、O(1)
C、O(sqrt(n)) sqrt表示對n取根方
D、O(n-i)
參考資料【 】
14、【單選題】某算法中,執行頻率最高的語句的執行次數為 則該算法的時間復雜度應該是( )。
A、T(n) = O(nnn)
B、T(n) = O(nn)
C、T(n) = O( (nnn+nn+n)/n )
D、T(n) = O(nn+n)
參考資料【 】
15、【單選題】數據結構中,數據處理的最小單位是( )。
A、數據
B、數據對象
C、數據元素
D、數據項
參考資料【 】
16、【多選題】以下屬于數據元素間基本邏輯結構的是( )。
A、集合
B、線性
C、樹
D、圖
參考資料【 】
17、【多選題】以下屬于算法特性的是( )。
A、0個或多個輸入;至少1個輸出
B、正確性
C、確定性
D、可行性和有限性
參考資料【 】
18、【多選題】算法設計的要求包括( )。
A、正確性
B、可讀性
C、健壯性
D、高效率和低存儲
參考資料【 】
19、【多選題】數據元素在計算機內存中的存儲映像包括( )。
A、順序存儲
B、非順序存儲
C、圖結構
D、樹結構
參考資料【 】
20、【多選題】抽象數據類型包括了( )。
A、一個數據對象
B、元素的存儲結構
C、元素間的關系
D、一組操作
參考資料【 】
21、【判斷題】具有線性結構的元素只能用順序存儲,具有非線性結構的元素只能非順序存儲。
A、正確
B、錯誤
參考資料【 】
22、【判斷題】算法就是程序。
A、正確
B、錯誤
參考資料【 】
23、【判斷題】算法的優劣與算法描述的語言無關。
A、正確
B、錯誤
參考資料【 】
24、【判斷題】算法的可行性是指每一條指令具有明確含義。
A、正確
B、錯誤
參考資料【 】
25、【判斷題】健壯的算法不會因為非法輸入數據而出現莫名其妙的執行結果。
A、正確
B、錯誤
參考資料【 】
26、【判斷題】算法設計的要求就是要設計高效率和低存儲的算法。
A、正確
B、錯誤
參考資料【 】
27、【判斷題】數據類型就是變量。
A、正確
B、錯誤
參考資料【 】
28、【判斷題】數據元素的存儲結構分為順序存儲和非順序存儲。
A、正確
B、錯誤
參考資料【 】
29、【判斷題】數據元素的順序存儲結構優于非順序存儲。
A、正確
B、錯誤
參考資料【 】
30、【判斷題】元素間的邏輯關系可分為線性和非線性關系兩種。
A、正確
B、錯誤
參考資料【 】
第1講線性表的概念隨堂測驗
1、【單選題】線性表是具有n個( )的有限序列(n0)
A、數據對象
B、數據元素
C、字符
D、數據項
參考資料【 】
2、【單選題】線性表是一個( )。
A、有限序列,可以為空
B、有限序列,不可以為空
C、無限序列,可以為空
D、無限序列,可以為空
參考資料【 】
3、【判斷題】線性表的特點是每個元素都有一個前驅和一個后繼。()
A、正確
B、錯誤
參考資料【 】
第2講線性表的順序存儲隨堂測驗
1、【單選題】若長度為n的線性表采用順序存儲結構,在其第i個位置插入一個新元素的算法的時間復雜度為( )(1=i=n+1)。
A、O(1)
B、O(n)
C、O(nn)
D、O()
參考資料【 】
2、【單選題】若長度為n的線性表采用順序存儲結構,刪除第i個位置的元素,需要移動的元素個數為( )。
A、i
B、n-i
C、n-i+1
D、n-i-1
參考資料【 】
第3講隨堂測驗
1、【單選題】對一個長度為n的順序表,假設在任何位置上插入一個元素的概率是相等的,那么插入一個元素時要移動表中的( )個元素。
A、n
B、n+1
C、
D、
參考資料【 】
2、【判斷題】線性表的順序存儲是指將表中元素按照從大到小或從小到大存儲。
A、正確
B、錯誤
參考資料【 】
第4講線性表的鏈式存儲隨堂測驗
1、【單選題】通過表達式 可以獲取帶頭結點的單鏈表L中首元素結點的數據值。
A、L->next
B、(L->next)->data
C、L->data
D、L->next
參考資料【 】
2、【判斷題】單鏈表中必須設有頭結點。()
A、正確
B、錯誤
參考資料【 】
第5講單鏈表的基本運算隨堂測驗
1、【單選題】下列選項中, 項是鏈表不具有的特點。
A、插入和刪除運算不需要移動元素
B、所需要的存儲空間與線性表的長度成正比
C、不必事先估計存儲空間大小
D、可以隨機訪問表中的任意元素
參考資料【 】
2、【單選題】有一個帶頭結點的單鏈表HEAD,則判斷其是否為空鏈表的表達式是
A、HEAD= =NULL
B、HEAD-〉NEXT= =NULL
C、HEAD-〉NEXT= =HEAD
D、HEAD!=NULL
參考資料【 】
3、【單選題】在一個單鏈表中P所指結點后插入一個S所指結點時,應執行語句: 。
A、P->next=S;S->next=P->next;
B、S->next=P->next;P->next=S;
C、S->next=P->next;P=S;
D、S->next=P;P->next=S;
參考資料【 】
第6講隨堂測驗
1、【單選題】設指針變量p指向單鏈表中結點A的直接前驅,若刪除單鏈表中結點A,則需要修改指針的操作序列為( )。
A、q=p->next;p->next=q->next;free(q);
B、q=p->next; p->next=q->next;
C、p->next=p-> next->next;
D、q=p->next;p->data=q->data;free(q);
參考資料【 】
2、【判斷題】對鏈表進行插入和刪除操作時不必移動鏈表中結點。( )
A、正確
B、錯誤
參考資料【 】
3、【判斷題】在單鏈表中,可以從頭結點出發,查找到表中所有結點。( )
A、正確
B、錯誤
參考資料【 】
第二章 單元測試(1)
1、【單選題】在長度為n的順序表中的第i( 1 = i = n+1 )個位置上插入一個元素,其算法時間復雜度為( )。
A、O(logn)(以2為底)
B、O(1)
C、O(n)
D、O(nn)
參考資料【 】
2、【單選題】在長度為n的順序表中的第i( 1 = i = n+1 )個位置上插入一個元素,需要移動的元素個數為( )。
A、n-i
B、i
C、n-i+1
D、n-i-1
參考資料【 】
3、【單選題】鏈表不具有的特點是( )。
A、插入、刪除不需要移動元素
B、可隨機訪問任一元素
C、不必事先估計存儲空間
D、所需存儲空間與線性表程度成正比
參考資料【 】
4、【單選題】在一單鏈表中,刪除指針p所指的后繼結點,以下語句正確的是( )。
A、p->next=p->next->next; free(p->next);
B、free(p->next);p->next=p->next->next;
C、 p=p->next;
D、s=p->next;p->next=s->next;free(s);
參考資料【 】
5、【單選題】假設刪除長度為n的順序表中的每個元素的概率相同,則刪除一個元素平均要移動的元素個數是( )。
A、n
B、(n+1)/2
C、(n-1)/2
D、n/2
參考資料【 】
6、【單選題】設某順序表中第一個元素的地址是Base,每個結點占m個單元,則第i個結點的地址為( )。
A、Base+(i-1)×m
B、Base+i×m
C、Base-i×m
D、Base+(i+1)×m
參考資料【 】
7、【單選題】長度為n的非空線性表采用順序存儲結構,在表的第i個位置插入一個數據元素,i的合法值應該是( )。
A、i>0
B、1≤i≤n+1
C、1≤i≤n-1
D、0≤i≤n+1
參考資料【 】
8、【單選題】非空單鏈表結點結構為【data,next】,若指針p所指結點是尾結點,則( )表達式為真。
A、pNULL
B、p->nextNULL
C、p->nextP
D、p->next!=NULL
參考資料【 】
9、【單選題】某順序表的第一個元素的存儲地址是500,每個元素占4個單元,則第8個元素的起始地址是( )。
A、504
B、508
C、516
D、528
參考資料【 】
10、【單選題】在長度為n的順序表中刪除第i(1=i=n)個位置上的元素,需要移動的元素個數為( )。
A、n-i
B、n-i+1
C、n-i-1
D、i
參考資料【 】
11、【單選題】在長度為n的順序表中的的末尾位置上插入一個元素,其算法時間復雜度為( )。
A、O(1)
B、O(n)
C、O(logn)(以2為底)
D、O(nlogn)
參考資料【 】
12、【單選題】以下算法的功能是在一個非遞減的順序存儲線性表中,刪除所有值相等的多余元素。時間復雜度為O(n),空間復雜度為O(1)。劃線部分應填入的語句是( )。void DelRepeatData(SeqList *L){ i=0; j=1; while( j=L-last) { if(L-elem[i]L-elem[j]) ; else { L-elem[i+1]=L-elem[j]; i++; j++; } } L-last=i;}
A、i++
B、j++
C、i–
D、j–
參考資料【 】
13、【單選題】以下算法是刪除帶頭結點單鏈表L中的最小的元素,橫線處應填入的語句是( )。void DelMinNode(LinkList L){ p=L-next; pre=L; if(LNULL) return; while(p-next!=NULL) //pre指向最小元素的前驅元素,開始默認第一個結點最小,pre指向頭結點 { if(p-next-data pre-next-data) pre=p; } //刪除pre后面的結點 p=pre-next; ;}
A、free§; pre->next=p->next;
B、free(p->next);pre->next=p->next;
C、pre->next=p->next; free§;
D、p->next=pre->next;free§;
參考資料【 】
14、【判斷題】單鏈表中增加頭結點的目的是存儲鏈表的長度。
A、正確
B、錯誤
參考資料【 】
15、【判斷題】線性表在鏈式存儲時,查找第i個元素的時間同i的值無關。
A、正確
B、錯誤
參考資料【 】
16、【判斷題】線性表在順序存儲時,查找第i個元素的時間同i 的值成正比。
A、正確
B、錯誤
參考資料【 】
17、【判斷題】線性表的特點是每個元素都有一個前驅和一個后繼。
A、正確
B、錯誤
參考資料【 】
18、【判斷題】線性表的鏈式存儲結構優于順序存儲。
A、正確
B、錯誤
參考資料【 】
19、【判斷題】順序存儲方式的優點是存儲密度大,插入、刪除效率高。
A、正確
B、錯誤
參考資料【 】
20、【判斷題】順序表的每個結點只能是一個基本類型,而鏈表的每個結點可以是一個構造類型。
A、正確
B、錯誤
參考資料【 】
21、【判斷題】插入和刪除操作是線性表的基本操作。這兩種操作在數組中也經常使用。
A、正確
B、錯誤
參考資料【 】
22、【判斷題】在順序表中,邏輯上相鄰的兩個元素物理存儲上也一定也相鄰。
A、正確
B、錯誤
參考資料【 】
23、【判斷題】在線性表的鏈式存儲結構中,邏輯上相鄰的兩個元素在物理存儲上并不一定緊鄰。
A、正確
B、錯誤
參考資料【 】
24、【判斷題】線性表采用順序存儲,必須占用一段地址連續的存儲單元。
A、正確
B、錯誤
參考資料【 】
25、【判斷題】順序表結構適宜進行隨機訪問,而鏈表適宜進行插入、刪除。
A、正確
B、錯誤
參考資料【 】
第7講循環鏈表隨堂測驗
1、【單選題】有一個帶頭結點的循環單鏈表HEAD,則判斷其是否為空鏈表的條件是 。
A、HEADNULL
B、HEAD-〉NEXTNULL
C、HEAD-〉NEXTHEAD
D、HEAD!=NULL
參考資料【 】
2、【判斷題】在單向循環鏈表中,從表中任意結點出發都可以順著next域訪問到表中所有元素()
A、正確
B、錯誤
參考資料【 】
第8講雙向鏈表–隨堂測驗
1、【單選題】與單鏈表相比,雙向鏈表的優點之一是 。
A、插入刪除操作更加方便
B、可以進行隨機訪問
C、可以省略表頭指針和表尾指針
D、訪問前后相鄰結點更方便。
參考資料【 】
2、【判斷題】在雙向鏈表L中,可以從任一結點p出發沿同一方向的指針域查找到表中所有元素。()
A、正確
B、錯誤
參考資料【 】
第9講靜態鏈表–隨堂測驗
1、【判斷題】靜態鏈表中與動態鏈表的插入和刪除運算類似,不需要做元素的移動。()
A、正確
B、錯誤
參考資料【 】
2、【判斷題】靜態鏈表既有順序存儲結構的優點,又有動態鏈表的優點。所以,它存取表中第i個元素的時間與位置序號i無關,可以實現隨機存取。()
A、正確
B、錯誤
參考資料【 】
第10講鏈式結構小結–隨堂檢測
1、【單選題】已知單鏈表的頭指針為head且該鏈表不帶頭結點,則該單鏈表為空的條件是 。
A、head== NULL
B、head->nextNULL
C、head->nexthead
D、head!=NULL
參考資料【 】
2、【單選題】設指針變量p指向單鏈表中某結點的直接前驅,若刪除單鏈表中該結點,需要修改指針的操作序列為 。
A、 q=p->next; p->next=q->next;free(q);
B、 q=p->next; free(q);
C、 p->next=p->next->next;free(p->next);
D、q=p->next; free(q);
參考資料【 】
3、【單選題】設帶有頭結點的單向循環鏈表的頭指針變量為head,則其判空條件是 。
A、headNULL
B、head->nextNULL
C、head->nexthead
D、head!=NULL
參考資料【 】
4、【判斷題】在雙向循環鏈表中,可以從任一結點p出發沿同一方向的指針域查找到表中所有元素。()
A、正確
B、錯誤
參考資料【 】
第12講隨堂測驗
1、【單選題】下列選項中, 項是鏈表不具有的特點。
A、插入和刪除運算不需要移動元素
B、所需要的存儲空間與線性表的長度成正比
C、不必事先估計存儲空間大小
D、可以隨機訪問表中的任意元素
參考資料【 】
2、【單選題】在線性表中最常用的操作是存取第i個元素及其前趨的值,可采用 存儲方式最省時間?
A、順序表
B、帶頭指針的雙向循環鏈表
C、帶頭指針的單向循環鏈表
D、帶頭指針的單向鏈表
參考資料【 】
3、【單選題】下面關于線性表的敘述錯誤的是( )。
A、 線性表采用順序存儲必須占用一片連續的存儲空間
B、線性表采用鏈式存儲不必占用一片連續的存儲空間
C、線性表采用鏈式存儲便于插入和刪除操作的實現
D、線性表采用順序存儲便于插入和刪除操作的實現
參考資料【 】
總結與提高隨堂測驗
1、【單選題】某線性表中最常用的操作是存取序號為i的元素和在最后進行插入和刪除運算,則采用 存儲方式時間性能最好。
A、雙向鏈表
B、雙向循環鏈表
C、單向循環鏈表
D、順序表
參考資料【 】
2、【單選題】已知一個帶頭結點的非空循環單鏈表,其尾指針是R,則其首元素結點的地址為:
A、 R->next
B、 *( R->next->next )
C、&( R->next->next )
D、 R->next->next
參考資料【 】
3、【判斷題】線性表的順序存儲優于鏈式存儲結構。()
A、正確
B、錯誤
參考資料【 】
4、【填空題】在帶頭結點的非空單鏈表中,頭結點的存儲位置由 指示
A、
參考資料【 】
第二章 單元測試(2)
1、【單選題】非空循環單鏈表L中,p指針指向尾結點,則以下表達式可能成立的是( )。
A、p->nextNULL
B、pNULL
C、p->nextL
D、pL
參考資料【 】
2、【單選題】若某線性表最常用的操作是存取任一指定序號的元素和在最后進行插入和刪除運算,則利用( )存儲方式最節省時間。
A、順序表
B、雙向鏈表
C、帶頭結點的雙循環鏈表
D、單循環鏈表
參考資料【 】
3、【單選題】某線性表中最常用的操作是在最后一個元素之后插入一個元素和刪除第一個元素,則采用( )存儲方式最節省運算時間。
A、單鏈表
B、僅有頭指針的單循環鏈表
C、雙鏈表
D、帶尾指針的單循環鏈表
參考資料【 】
4、【單選題】對于雙向循環鏈表,在兩個結點之間插入一個新結點需修改的指針共( )個。
A、2
B、3
C、4
D、5
參考資料【 】
5、【單選題】將帶頭指針的長度為m的單鏈表,鏈接到同樣帶頭指針的長度為n的單鏈表末尾。該算法的時間復雜度為( )。
A、O(m)
B、O(n)
C、O(m+n)
D、O(m*n)
參考資料【 】
6、【單選題】在某雙向鏈表中刪除一個結點,需要改動( )個指針域。
A、1
B、2
C、3
D、4
參考資料【 】
7、【單選題】某雙向鏈表中,結點結構為【prior,data,next】。那么刪除p指針所指結點時,需要執行語句:p-next-prior=p-prior; ( ); free§;
A、p->prior->next = p->next
B、p->next = p->prior
C、p->prior = p->next
D、p->prior->next = p
參考資料【 】
8、【單選題】在一個長度大于2的單循環鏈表L中,P指針指向某結點,在P前插入S結點,要求在O(1)時間復雜度內完成,以下正確的是( )。
A、s->next=p->next;p->next=s; //將s結點插入到p之后t=s->data;s->data=p->data;p->data; //s結點和p結點的值互換
B、q=p->next;while(q->next!=p) q=q->next;s->next=p; q->next=s;
C、q=p->next;while(q->next!=p) q=q->next;q->next=s; s->next=p;
D、在p結點前插入s結點,而且要求在O(1)內,無法實現。
參考資料【 】
9、【單選題】兩個單鏈表,可能相交,也可能不相交。如果相交,則從交點開始,合并為一個鏈表。設計一個算法那,判斷兩個鏈表是否相交,如果相交,求出相交的第一個結點。以下哪種說法正確( )。
A、可采用以下算法實現:第一步:先將兩個鏈表各自遍歷一遍,統計出兩個單鏈表的長度m和n。假設m>n,k=m-n第二步:長鏈表先走k步:用指針p從長鏈表頭開始,先走k步,此時p指向長鏈表的第k+1個結點。第三步:q從短鏈表頭開始,和p一起走。p和q相等時,即為交點;如果p和q不相交,則兩個鏈表不相交。
B、可采用以下算法實現:第一步:用兩個指針p和q,分別從兩個鏈表頭開始,向后走。第二步:如果兩個指針相等,即指向同一個結點,則說明相交,該結點就是交點。
C、可采用以下算法實現:第一步:將兩個鏈表分別逆置。第二步:從頭開始,什么時候鏈表分叉,該分叉的結點就是相交的結點。
D、該問題無法求解。
參考資料【 】
10、【單選題】編寫高效算法,找出鏈表的中間結點。以下哪個算法更高效( )。
A、采用快慢指針方法。即:第一步:一個指針走的快,每次走2個結點;一個指針走的慢,每次走1個結點。第二步:當快指針到結尾或空時,慢指針所指結點即為中間結點。注:遇到鏈表結點為奇數或偶數時,需稍加改進即可。
B、第一步:遍歷一遍鏈表,求出其長度n。第二步:再從頭開始遍歷鏈表,到n/2處即可。若n為偶數,中間結點則有2個;若n為奇數,則只有1個。需稍加處理。
C、第一步:將鏈表中的結點依次放入一個數組中,同時記錄結點個數;第二步:數組中間位置即為中間結點。
D、無法實現
參考資料【 】
11、【單選題】為了逆序輸出單鏈表中的結點,以下哪些算法無法實現該功能( )。
A、第一步:將單鏈表逆置;第二步:輸出單鏈表中的元素;第三步:將單鏈表逆置,即恢復之前的單鏈表。
B、第一步:將單鏈表中的 元素依次放入一個數組中第二步:逆序輸出該數組中的元素。
C、可用如下代碼實現:void reversePrint(Node *p//p初值為單鏈表第一個結點{ while(p!=NULL) { reversePrint(p->next); printf("%c ",p->data); //假設結點值為字符}
D、算法思想:第一步:從頭到尾找到最后一個結點;第二步:從最后一個結點向前依次輸出每個結點的值。
參考資料【 】
12、【判斷題】靜態鏈表既有順序存儲的優點,又有動態鏈表的優點。所以,它存取表中第i個元素的時間與i無關。
A、正確
B、錯誤
參考資料【 】
13、【判斷題】循環單鏈表中,每個結點都有一個前驅和后繼,因此循環單鏈表不是線性結構。
A、正確
B、錯誤
參考資料【 】
14、【判斷題】靜態鏈表中能容納的元素個數在鏈表定義時就確定了,以后不能增加。
A、正確
B、錯誤
參考資料【 】
15、【判斷題】靜態鏈表與動態鏈表在元素的插入、刪除上類似,不需做元素的移動。
A、正確
B、錯誤
參考資料【 】
16、【判斷題】線性表在順序存儲時,查找第i個元素的時間同i的值無關。
A、正確
B、錯誤
參考資料【 】
17、【判斷題】線性表在順序存儲時,刪除第i個元素的時間同i的值無關。
A、正確
B、錯誤
參考資料【 】
18、【判斷題】靜態鏈表因為采用的是一段連續的空間來存儲元素,因此查找第i個元素的時間和i無關。
A、正確
B、錯誤
參考資料【 】
第1講隨堂測驗
1、【單選題】 棧操作的特性是( )
A、FIFO
B、LIFO
C、FCFS
D、插入和刪除操作限制在表的兩端進行
參考資料【 】
2、【單選題】棧中,允許進行插入和刪除的一端稱為()
A、棧頂
B、棧底
C、棧頭
D、棧尾
參考資料【 】
3、【判斷題】棧是線性結構,是操作受限制的線性表。()
A、正確
B、錯誤
參考資料【 】
第2講隨堂測驗
1、【多選題】1、 已知順序棧的地址為s,此時棧不滿且棧頂指示器top指向真實棧頂,執行元素x進棧操作正確的語句是( )
A、s->top++;s->elem[s->top]=x;
B、s->top= s->top+1;s->elem[s->top]=x;
C、s->elem[++s->top]=x;
D、s->elem[s->top]=x;s->top++;
參考資料【 】
2、【多選題】2、 已知順序棧的地址為s ,此時棧不空且棧頂指示器top指向真實棧頂,執行出棧操作并將出棧元素賦值給x所指向的單元,則下列語句中,正確的是( )
A、s->top–; *x= s->elem[s->top];
B、*x= s->elem[s->top]; s->top= s->top-1;
C、x =s->elem[s->top–];
D、x= s->elem[s->top];s->top–;
參考資料【 】
3、【判斷題】1、 已知順序棧的地址為s ,此時棧不空且棧頂指示器top指向真實棧頂,執行取棧頂操作的語句是x= s-elem[s-top–]😭 )
A、正確
B、錯誤
參考資料【 】
第3講隨堂測驗
1、【單選題】已知一個雙端棧的地址為dS,則該雙端棧不滿時,,元素x進1號棧(高端棧)操作的語句是()
A、dS->stack[–dS->top[1]]=x;
B、dS->stack[dS->top[1]]=x;dS->top[1]–;
C、dS->top[1]–; dS->stack[dS->top[1]]=x;
D、dS->stack[++dS->top[1]]=x;
參考資料【 】
2、【多選題】已知一個雙端棧dStack ,則判斷該雙端棧棧滿的條件是()
A、dStack.top[0]+1= = dStack.top[1]
B、dStack.top[0] = = dStack.top[1]
C、dStack.top[0]-1= = dStack.top[1]
D、dStack.top[0] = = dStack.top[1]-1
參考資料【 】
3、【判斷題】已知一個雙端棧的地址為dS,則該雙端棧不空時,1號棧(高端棧)出棧操作的語句是x= dS-stack[dS-top[1]–]()
A、正確
B、錯誤
參考資料【 】
第4講隨堂測驗
1、【單選題】已知帶頭結點的鏈棧top, 則該鏈棧不空時, 出棧操作的語句是( )
A、top->next=top->next->next; *x=top->next->data;
B、*x=top->next->data; top->next=top->next->next; free(top->next);
C、*x=top ->data;p=top;top =p->next;free§;
D、*x=top->next->data;p=top->next;top->next=p->next;free§;
參考資料【 】
2、【單選題】已知帶頭結點的鏈棧top, 則該鏈棧為空的條件是( )
A、topNULL
B、top->next= =NULL
C、top->next->next= =NULL
D、top->next= =top
參考資料【 】
3、【單選題】已知帶頭結點的鏈棧top, 則元素x對應的新結點s進棧操作的語句是()
A、s->next=top->next;top->next=s;
B、top->next=s; s->next=top->next;
C、s->next=top;top =s;
D、top =s; s->next=top;
參考資料【 】
第5講 棧的應用
1、【單選題】在括號匹配算法中,當正掃描檢測的符號是右括號,此時的棧是空棧,則()。
A、右括號進棧;
B、繼續向下掃描;
C、取出棧頂元素做匹配檢查;
D、此時出現“右括號多了”的不匹配現象。
參考資料【 】
2、【單選題】在算術表達式求值的算法中,若當前正掃描的符號是運算符s,且s的優先級比運算符棧棧頂元素的優先級高,則( )
A、運算符棧出棧,運算數出棧,做運算;
B、s 進運算符棧;
C、取運算符棧棧頂,運算數棧頂,做運算;
D、s 進運算數棧;
參考資料【 】
3、【填空題】在括號匹配算法中,當正掃描的符號是左括號時,則該做左括號( )。
A、
參考資料【 】
第6講隨堂測驗
1、【多選題】遞歸進層(i→i +1層)系統需要做三件事是( )
A、保留本層參數與返回地址;
B、保留下層參數和函數地址;
C、為被調用函數的局部變量分配存儲區,給下層參數賦值;
D、將程序轉移到被調函數的入口。
參考資料【 】
2、【多選題】從被調用函數返回調用函數之前,遞歸退層(i←i +1層)系統也應完成三件工作是( )
A、保存被調函數的計算結果;
B、釋放被調函數的數據區,恢復上層參數;
C、保存返回上層函數的地址;
D、依照被調函數保存的返回地址,將控制轉移回調用函數。
參考資料【 】
3、【判斷題】遞歸是指在定義自身的同時又出現了對自身的引用。( )
A、正確
B、錯誤
參考資料【 】
4、【填空題】系統需設立一個遞歸工作棧作為整個遞歸函數運行期間使用的數據存儲區。每層遞歸所需信息構成一個( )。
A、
參考資料【 】
第三章 單元測驗(1)
1、【單選題】棧的特點是( )。
A、先進先出
B、先進后出
C、后進后出
D、沒有順序
參考資料【 】
2、【單選題】隊列的特點是( )。
A、先進先出
B、先進后出
C、后進先出
D、沒有順序
參考資料【 】
3、【單選題】棧之說以叫限定性線性表,是因為( )。
A、棧的操作位置受限制
B、棧中的元素類型受限制
C、棧的應用范圍受限制
D、棧的存儲結構受限制
參考資料【 】
4、【單選題】輸入序列為123,若進棧、出棧操作可以交替進行,則不能得到的出棧序列是( )。
A、321
B、312
C、123
D、132
參考資料【 】
5、【單選題】以下會用到棧的應用是( )。
A、遞歸
B、子程序調用
C、括號匹配
D、以上選項均有可能
參考資料【 】
6、【單選題】循環隊列存儲在數組A[0…m-1]中,則入隊時rear應該變化為( )
A、rear++
B、rear=(rear+1) mod (m-1)
C、rear=(rear+1) mod m
D、rear=(rear+1) mod (m+1)
參考資料【 】
7、【單選題】循環隊列A[0…n-1]存放其元素值,F表示隊頭元素所在的位置,R表示隊尾元素的下一個位置。則當前隊列中的元素數是( )。
A、(R-F+n)%n
B、R-F+1
C、R-F-1
D、R-F
參考資料【 】
8、【單選題】棧和隊列的共同點是( )。
A、都是先進先出
B、都是先進后出
C、只允許在端點處插入和刪除元素
D、它們沒有共同點
參考資料【 】
9、【單選題】當利用大小為n的數組(下標從1到n)順序存儲一個棧時,假定用topn表示棧空,則每次向這個棧插入一個元素時,首先應執行( )語句修改top指針。
A、top++;
B、top–;
C、top=0;
D、top=n;
參考資料【 】
10、【單選題】設棧S和隊列Q的初始狀態均為空,元素a,b,c,d,e,f,g依次進入棧S。如果每個元素出棧后立即進入隊列Q,且7個元素出隊的順序為b,d,e,f,c,a,g,則棧S的容量至少是( )。
A、1
B、2
C、3
D、4
參考資料【 】
11、【單選題】以下屬于遞歸求解問題的前提條件的是( )。
A、原問題可層層分解為子問題,且子問題比原問題規模小
B、子問題的解法與原問題解法相同
C、最小的子問題有解
D、其他選項均是
參考資料【 】
12、【單選題】以下屬于消除遞歸的主要原因是( )。
A、遞歸程序不容易理解
B、遞歸程序時空效率較差
C、遞歸程序容易寫錯
D、其他選項均是
參考資料【 】
13、【單選題】一個棧的輸入序列為123……n,若輸出序列的第一個元素是n,輸出第i(1=i=n)個元素是( )
A、i
B、n-i
C、n-i+1
D、不確定
參考資料【 】
14、【單選題】凡是元素的保存次序與使用順序相反的,都可以使用( )。
A、棧
B、隊列
C、順序表
D、鏈表
參考資料【 】
15、【單選題】若棧采用順序存儲方式存儲,現兩棧共享空間S[1~N],top[i]代表第i個棧( i =1,2)棧頂。棧1的底在S[1],棧2的底在S[N],則棧滿的條件是( )。
A、top[1]+top[2]N
B、top[1]+1top[2]
C、top[1]+top[2]N-1
D、top[2]-top[1]0
參考資料【 】
16、【判斷題】消除遞歸肯定要用到棧,否則無法完成。
A、正確
B、錯誤
參考資料【 】
17、【判斷題】若輸入序列為1234,則通過一個棧可以得到輸出序列3124。
A、正確
B、錯誤
參考資料【 】
18、【判斷題】若輸入序列為1234,則通過棧只能得到4321的輸出序列。
A、正確
B、錯誤
參考資料【 】
19、【判斷題】有些問題,比如漢諾塔問題等,只能用遞歸來解,無法轉換成非遞歸算法。
A、正確
B、錯誤
參考資料【 】
20、【判斷題】順序棧因為是順序存儲,所以可以隨機存取棧中任意元素。
A、正確
B、錯誤
參考資料【 】
21、【判斷題】兩順序棧共享空間,也存在空間溢出問題。
A、正確
B、錯誤
參考資料【 】
22、【判斷題】棧和隊列都是限制插入和刪除位置的線性結構。
A、正確
B、錯誤
參考資料【 】
23、【判斷題】函數或過程調用需要用到棧。
A、正確
B、錯誤
參考資料【 】
第7講隨堂測驗
1、【多選題】遞歸算法具有兩個特性分別是( )
A、 遞歸算法求解問題,方法簡單。
B、遞歸算法效率高
C、 遞歸算法求解問題,方法復雜
D、遞歸算法的效率較低
參考資料【 】
2、【多選題】下列可以直接用循環結構即可將遞歸轉換為非遞歸的是( )
A、斐波那契數列問題
B、N!問題
C、漢諾塔問題
D、尾遞歸問題
參考資料【 】
第8講隨堂測驗
1、【單選題】已知帶頭結點的鏈隊列指針Q,則該隊列做新元素結點s進隊操作的語句是( )
A、 Q->rear->next=s; Q->rear=s;
B、 s->next=Q->front->next; Q->front->next=s;
C、Q->next=s;Q=s;
D、 s->next=Q->next ;Q->next=s;
參考資料【 】
2、【單選題】已知帶頭結點的鏈隊列指針Q,則該非空隊列取隊頭元素操作的語句是( )
A、 *x=Q->next->data;
B、 *x=Q->front->data;
C、 *x=Q->front->next->data;
D、 x=Q->rear->data;
參考資料【 】
3、【判斷題】隊列操作的特性是LIFO。()
A、正確
B、錯誤
參考資料【 】
4、【判斷題】隊列允許做插入的一端稱為隊頭,允許刪除的一端稱為隊尾( )
A、正確
B、錯誤
參考資料【 】
第9講隨堂測驗
1、【單選題】已知循環隊列Q- element[MAXSIZE],隊頭指示器為Q-front,隊尾指示器為Q-rear(指向真實隊尾的下一個位置),則該隊列中元素個數為:()
A、 Q->rear-Q->front
B、 Q->rear-Q->front+1
C、(Q->rear-Q->front+ MAXSIZE)% MAXSIZE
D、(Q->rear-Q->front+1+ MAXSIZE)% MAXSIZE
參考資料【 】
2、【單選題】已知循環隊列Q- element[MAXSIZE],隊頭指示器為Q-front,隊尾指示器為Q-rear(指向真實隊尾的下一個位置),則該隊列為空隊列的條件為( )
A、 Q->rear= =Q->front
B、 Q->rear+1= =Q->front
C、(Q->rear+1)% MAXSIZE = =Q->front
D、(Q->rear-1)% MAXSIZE = =Q->front
參考資料【 】
3、【單選題】已知循環隊列Q- element[MAXSIZE],隊頭指示器為Q-front,隊尾指示器為Q-rear(指向真實隊尾的下一個位置),則該隊列為滿隊列的條件為( )(采用少用一個空間的方法)
A、 Q->rear= =Q->front
B、 Q->rear+1= =Q->front
C、(Q->rear+1)% MAXSIZE = =Q->front
D、(Q->rear-1)% MAXSIZE = =Q->front
參考資料【 】
第10講隨堂測驗
1、【判斷題】在打印楊輝三角形前N行的算法中,需要申請一個NN的二維數組存放楊輝三角形N行數據。()
A、正確
B、錯誤
參考資料【 】
第三章 單元測驗(2)
1、【單選題】隊列對數據的操作順序是( )。
A、先進先出
B、先進后出
C、隨機存取
D、其余三個均正確
參考資料【 】
2、【單選題】設rear是非空循環單鏈表的尾指針,則刪除表中第一個元素結點的操作可表示為( )(該鏈表不帶頭結點)。
A、p=rear->next; rear->next=p->next; free§;
B、p=rear->next;free§;rear->next=p->next;
C、free(rear->next); rear->next=rear->next->next;
D、p=rear->next;free§;rear->next=rear->next;
參考資料【 】
3、【單選題】設棧S和隊列Q的初始狀態均為空,元素a,b,c,d,e,f,g依次進入棧S(進棧和出棧可交替進行)。如果每個元素出棧后立即進入隊列Q,且7個元素出隊的順序為b,d,e,f,c,a,g,則棧S的容量至少是( )。
A、1
B、2
C、3
D、4
參考資料【 】
4、【單選題】以下應用可能會用到棧的是( )。
A、遞歸調用
B、表達式求值
C、函數調用
D、其余三個資料均正確
參考資料【 】
5、【單選題】一個隊列的元素入隊順序是1,2,3,4,則出隊順序為( )。
A、1,2,3,4
B、4,3,2,1
C、2,1,3,4
D、3,4,2,1
參考資料【 】
6、【單選題】某循環隊列用數組A[0…n-1]表示,指示器為front指向隊頭元素,指示器rear指向隊尾后的空單元。則當前隊列中的元素個數為( )。
A、(rear-front+n)%n
B、rear-front
C、(rear-front+n+1)%n
D、(rear-front+n-1)%n
參考資料【 】
7、【單選題】以下函數的功能是( )。void fun(Queue *Q){ Stack S; int d; InitStack(S); while(!EmptyQueue(*Q)) { DeleteQueue(Q,d); Push(S, d); } while(!EmptyStack(S)){ Pop(S,d); EnterQueue(Q,d); }}
A、將隊列Q中的元素逆置。
B、將隊列Q中的元素放入棧中。
C、將隊列Q中的元素放入棧中,然后再從棧中取出來放入隊列中。
D、刪除隊列Q中的元素
參考資料【 】
8、【判斷題】棧和隊列都是限制存取位置的線性結構。
A、正確
B、錯誤
參考資料【 】
9、【判斷題】循環隊列用數組A[0…n-1]表示,則入隊時的隊尾指針變換語句為:rear=(rear+1)%n;
A、正確
B、錯誤
參考資料【 】
10、【判斷題】一般的緩沖區用隊列做為數據結構。
A、正確
B、錯誤
參考資料【 】
11、【判斷題】循環隊列因為是順序存儲,因此可以隨機存取。
A、正確
B、錯誤
參考資料【 】
12、【判斷題】判斷表達式中的括號是否匹配,采用隊列數據結構最佳。
A、正確
B、錯誤
參考資料【 】
第1講隨堂測驗
1、【單選題】設s=‘abcd’,s1=‘123’,則執行語句StrInsert( s,2,s1)后,s= .
A、‘123abcd’
B、‘a123bcd’
C、‘ab123cd’
D、‘abc123d’
參考資料【 】
2、【單選題】設s=‘abcd’,則執行語句StrDelete( s,2,2)后,s= .
A、‘abcd’
B、‘abc’
C、‘ad’
D、‘a’
參考資料【 】
第2講隨堂測驗
1、【填空題】假設主串S=‘aaabbbababaabb’,模式串T=‘abaa’,用串匹配算法從主串的第6個字符開始模式匹配,需要做 趟匹配,方能找到匹配串。
A、
參考資料【 】
2、【填空題】假設主串S=‘aaabbbababaabb’,模式串T=‘abaa’,用串匹配算法從主串的第6個字符開始模式匹配,在第2趟匹配中,要做 次比較。
A、
參考資料【 】
第3講隨堂測驗
1、【單選題】用帶頭結點的單鏈表來表示串s,則串s 為空串的條件是( )
A、s->nextNULL
B、sNULL
C、s->nexts
D、s->next->nextNULL
參考資料【 】
隨堂測驗
1、【單選題】假設有6行8列的二維數組A(下標從1開始),每個元素占用6個字節,存儲器按字節編址。已知A的基地址為1000 ,計算按行存儲時元素A36的地址是 ;
A、1126
B、1138
C、1192
D、無法確定
參考資料【 】
2、【單選題】假設有6行8列的二維數組A(下標從1開始),每個元素占用6個字節,存儲器按字節編址。已知A的基地址為1000 ,計算按列存儲時元素A36的地址是 ;
A、1192
B、1126
C、1138
D、無法確定
參考資料【 】
隨堂測驗
1、【單選題】已知一個n行n列的三對角帶狀矩陣A,其中非零元素的個數是( )。
A、3n-2
B、3n+2
C、3n
D、nn
參考資料【 】
2、【單選題】若將n階上三角矩陣A按列優先壓縮存放在一維數組B中,第一個非零元素存放在B[0]中,則非零元素aij存放在B[k]中,則k=( )。
A、
B、
C、
D、
參考資料【 】
第3講隨堂測驗
1、【單選題】對稀疏矩陣進行壓縮存儲的目的是( )
A、便于進行矩陣運算
B、便于輸入和輸出
C、節省存儲空間
D、減低運算的時間復雜度
參考資料【 】
2、【單選題】稀疏矩陣壓縮存儲后,不會失去( )功能輸入輸出
A、順序存儲
B、隨機存取
C、輸入輸出
D、輸入輸出
參考資料【 】
第4講隨堂測驗
1、【填空題】對于一個m行n列的稀疏矩陣中有len個非零元素,則用十字鏈表存儲時,需要( )個頭指針。
A、
參考資料【 】
2、【填空題】對于一個m行n列的稀疏矩陣中有len個非零元素,則用十字鏈表存儲時,需要( )個三元組結點。
A、
參考資料【 】
第5講隨堂測驗
1、【判斷題】任意一個廣義表都可以表示為由表頭和表尾構成( )。
A、正確
B、錯誤
參考資料【 】
2、【判斷題】非空的廣義表的表尾可能是單個元素也可能是表元素( )。
A、正確
B、錯誤
參考資料【 】
3、【填空題】已知廣義表L=(( x,y,z), a,( u,t,w)),則head( head( tail( tail( L))))的結果是( )。
A、
參考資料【 】
4、【填空題】已知數組M[ 1 …10 ,-1 …6 ,0 …3 ], )若數組以行序為主序存儲,起始地址為1 000 ,且每個數據元素占用3個存儲單元,則M[ 2 ,4 ,2 ]的地址為( )
A、
參考資料【 】
第1講隨堂測驗
1、【單選題】樹最適合用來表示( )
A、有序數據元素
B、無序數據元素
C、元素之間具有分支層次關系的數據
D、元素之間無聯系的數據
參考資料【 】
2、【填空題】若一棵樹的廣義表法表示為:A(B(E,F),C(G(H,I,J,K),L),D(M(N)))則該樹的度為( );
A、
參考資料【 】
3、【填空題】若一棵樹的廣義表法表示為:A(B(E,F),C(G(H,I,J,K),L),D(M(N)))該樹的深度為( );
A、
參考資料【 】
4、【填空題】若一棵樹的廣義表法表示為:A(B(E,F),C(G(H,I,J,K),L),D(M(N)))該樹中葉子結點的個數為:( )
A、
參考資料【 】
第2講隨堂測驗
1、【單選題】按照二叉樹的定義,具有3個結點的二叉樹有( )種
A、3
B、4
C、5
D、6
參考資料【 】
2、【單選題】若一棵二叉樹有10個度為2的結點,5個度為1的結點,則度為0的結點有( )個。
A、9
B、11
C、15
D、不確定
參考資料【 】
3、【單選題】一個高度為h的完全二叉樹至少有( )個結點
A、
B、
C、
D、
參考資料【 】
4、【判斷題】二叉樹就是結點度不大于2的樹。()
A、正確
B、錯誤
參考資料【 】
5、【判斷題】不存在這樣的二叉樹:它有n個度為0的結點,n-1個度為1的結點,n-2個度為2的結點。( )
A、正確
B、錯誤
參考資料【 】
6、【填空題】具有n個結點的二叉樹采用二叉鏈表存儲結構,共有( )非空的指針域。
A、
參考資料【 】
7、【填空題】擁有100個結點的完全二叉樹的最大層數是( )
A、
參考資料【 】
第3講隨堂測驗
1、【單選題】某二叉樹的先序序列和中序序列正好相同,則該二叉樹一定是( )
A、空樹或只有一個結點
B、完全二叉樹
C、每個結點都沒有左子
D、高度等于其結點數
參考資料【 】
2、【單選題】在二叉樹中,p所指向的結點為度為1的分支點的條件是( )
A、p->lchild= =NULL ||p->rchild= =NULL
B、!( p->lchild! =NULL &&p->rchild!=NULL)
C、!(p->lchild= =NULL &&p->rchild= =NULL)
D、(p->lchild= =NULL &&p->rchild! =NULL)|| (p->lchild! =NULL &&p->rchild= =NULL)
參考資料【 】
3、【判斷題】已知二叉樹的先序和后序遍歷序列可以唯一確定該二叉樹。( )
A、正確
B、錯誤
參考資料【 】
第六章 單元測驗1
1、【單選題】已知一算術表達式的中綴形式為 A-B/C+DE,前綴形式為±A/BCDE,其后綴形式為( )。
A、 ABCDE/-+
B、AB/C-DE+
C、ABC/-DE+
D、 A-BC/DE*+
參考資料【 】
2、【單選題】有關二叉樹下列說法正確的是( )。
A、二叉樹中每個結點的度都為2
B、一棵二叉樹的度可以小于2
C、二叉樹中至少有一個結點的度為2
D、二叉樹中任何一個結點的度都為2
參考資料【 】
3、【單選題】在一棵高度為k的滿二叉樹中,結點總數為( )。
A、-1
B、2k
C、
D、
參考資料【 】
4、【單選題】某二叉樹中有60個葉子結點,則該二叉樹中度為2的結點個數為( )。
A、59
B、60
C、61
D、不確定
參考資料【 】
5、【單選題】100個結點的完全二叉樹采用順序存儲,從1開始按層次編號,則編號最小的葉子結點的編號應該是( )。
A、100
B、49
C、50
D、51
參考資料【 】
6、【單選題】高度為7的完全二叉樹,最少有( )個結點。
A、64
B、127
C、63
D、128
參考資料【 】
7、【單選題】高度為7的二叉樹,最少有( )個結點。
A、7
B、13
C、64
D、127
參考資料【 】
8、【單選題】對任意一棵有n個結點的樹,這n個結點的度之和為( )。
A、n-1
B、n
C、n+2
D、2*n
參考資料【 】
9、【判斷題】完全二叉樹一定存在度為1的結點。
A、正確
B、錯誤
參考資料【 】
10、【判斷題】完全二叉樹中,若一個結點沒有左孩子,則它必是葉子。
A、正確
B、錯誤
參考資料【 】
11、【判斷題】二叉樹只能用二叉鏈表表示。
A、正確
B、錯誤
參考資料【 】
12、【判斷題】樹形結構中,每個元素都有一個前驅,0個或多個后繼。
A、正確
B、錯誤
參考資料【 】
第4講隨堂檢測
1、【單選題】設二叉樹采用二叉鏈表方式存儲,root指向根結點,r所指結點為二叉樹中任一給定的結點。則可以通過改寫( )算法,求出從根結點到結點r之間的路徑。
A、先序遍歷
B、中序遍歷
C、后序遍歷
D、層次遍歷
參考資料【 】
2、【多選題】已知二叉樹用二叉鏈表存儲,則若實現二叉樹實現左右子樹交換,可以借助改寫( )遍歷算法實現。
A、先序遍歷
B、中序遍歷
C、后序遍歷
D、以上三種都可以
參考資料【 】
第5講隨堂測驗
1、【單選題】在中序遍歷非遞歸算法中,在進入子樹進行訪問前,需要在自定義棧中保存( )
A、本層根結點指針
B、本層根結點的右孩子指針
C、本層根結點的左孩子指針
D、無需保留任何信息
參考資料【 】
第6講隨堂測驗
1、【單選題】引入線索二叉樹的目的是( )
A、加快查找指定遍歷過程中結點的直接前驅和直接后繼
B、為了能在二叉樹中方便地插入和刪除結點
C、為了方便找到結點的雙親
D、使二叉樹遍歷結果唯一
參考資料【 】
2、【單選題】若判斷線索二叉樹中的p結點有右孩子結點則下列()表達式為真。
A、p!=NULL
B、p->rchild!=NULL
C、p->rtag= =0
D、p->rtag= =1
參考資料【 】
3、【單選題】若線索二叉樹中的p結點沒有左孩子結點則下列( )表達式為真。
A、pNULL
B、p->lchildNULL
C、p->ltag= =0
D、p->ltag= =1
參考資料【 】
第7講隨堂測驗
1、【單選題】一棵二叉樹的后序序列是:CBEFDA,中序序列是:CBAEDF,則該二叉樹的先序序列是( )
A、ABCDEF
B、ABCEDF
C、ABDEFC
D、ABFECD
參考資料【 】
2、【單選題】一棵二叉樹的先序序列是:CEDBA,中序序列是:DEBAC ,則該二叉樹的后序序列是( )
A、DABEC
B、DCBAE
C、DEABC
D、CBADE
參考資料【 】
第8講隨堂測驗
1、【單選題】如圖所示的二叉樹BT是由森林T1轉換而來的二叉樹,那么森林T1中有( )葉子結點。<img src="http://nos.netease.com/edu-image/365A12AF8BBBA3061A0C97B299C2B87C.JPG?imageView
A、4
B、5
C、6
D、7
參考資料【 】
2、【填空題】與樹等價的二叉樹,根沒有( )子樹。
A、
參考資料【 】
第9講隨堂測驗
1、【單選題】有13個葉子結點的哈夫曼樹,該樹中結點總數為( )
A、13
B、26
C、12
D、25
參考資料【 】
2、【判斷題】在哈夫曼樹中,權值相同的葉子點一定在同一層上。( )
A、正確
B、錯誤
參考資料【 】
3、【判斷題】在哈夫曼樹中,權值較大的葉子點一般離根比較近。( )
A、正確
B、錯誤
參考資料【 】
4、【填空題】若以{4,5,6,7,8}作為葉子點構造哈夫曼樹,則其帶全路徑長度為( )
A、
參考資料【 】
第10講隨堂測驗
1、【判斷題】在哈夫曼編碼中,當兩個字符出現的頻率相等時,則兩個字符的哈夫曼編碼也相同。( )
A、正確
B、錯誤
參考資料【 】
第六章 單元測驗2
1、【單選題】已知一棵二叉樹的前序遍歷結果為ABCDEF,中序遍歷結果為CBAEDF,則后序遍歷的結果為( )。
A、CBEFDA
B、FEDCBA
C、CBEDFA
D、不確定
參考資料【 】
2、【單選題】線索二叉樹中,判斷p所指向的結點為葉子結點的條件是( )。
A、p->LCNULL && p->RCNULL
B、p->LTag1
C、p->LCNULL && p->LTag0
D、p->LTag0 && p->RTag0
參考資料【 】
3、【單選題】以下屬于前綴編碼的是( )。
A、{0,1,01,010,110}
B、{00,01,10,11,101}
C、{0,1101,1110,1100,1111}
D、{01,00,10,001,110,101}
參考資料【 】
4、【單選題】在下列存儲形式中,( )不是樹的存儲形式。
A、雙親表示法
B、孩子鏈表表示法
C、孩子-兄弟表示法
D、順序存儲表示法
參考資料【 】
5、【單選題】對二叉樹中的結點進行編號,要求根結點的編號最小,左孩子結點編號比右孩子結點編號小。則應該采用( )遍歷方法對其進行編號。
A、先序
B、中序
C、后序
D、層次
參考資料【 】
6、【單選題】已知某二叉樹的后序遍歷序列是CEFDBA,中序遍歷序列是CBEDFA。與該二叉樹對應的樹或森林中,葉子的數目是( )個。
A、1
B、2
C、3
D、4
參考資料【 】
7、【單選題】某二叉樹中有60個葉子結點,則該二叉樹中度為2的結點個數為( )。
A、59
B、60
C、61
D、不一定
參考資料【 】
8、【單選題】某二叉樹的邏輯結構如下圖所示,則其擴展先序序列為( )。
A、AB
B、DF
C、
D、
E、C
F、E
G、
H、(
I、表示空)
J、AB
K、DF
L、
M、
N、C
O、E(
P、表示空)
Q、ABDFCE
R、ABCDEF
參考資料【 】
9、【單選題】樹的后根遍歷,相當于對應二叉樹的( )遍歷。
A、中序
B、先序
C、后序
D、層次
參考資料【 】
10、【判斷題】哈夫曼樹的帶權路徑長度等于其中所有結點的帶權路徑之和。
A、正確
B、錯誤
參考資料【 】
11、【判斷題】給定二叉樹的先序、中序和后序遍歷序列中的任意兩個,就可以唯一確定一棵二叉樹。
A、正確
B、錯誤
參考資料【 】
12、【判斷題】在葉子數目和權值相同的所有二叉樹中,帶權路徑長度最小的樹一定是哈夫曼樹。
A、正確
B、錯誤
參考資料【 】
13、【判斷題】將一棵樹轉成二叉樹,根結點一定沒有右子樹。
A、正確
B、錯誤
參考資料【 】
14、【填空題】有10個葉子結點的哈夫曼樹,總結點個數是 。
A、
參考資料【 】
15、【填空題】將一棵樹轉換為二叉樹時,遵循的規則是左孩子、 。
A、
參考資料【 】
16、【填空題】用權值{1,2,3,4,5}構造一棵哈夫曼樹,則該樹的帶權路徑長度為 。
A、
參考資料【 】
17、【填空題】假設T是一棵高度為5的二叉樹,T中只有度為0和度為2的結點,那么T樹最少應該有 個結點。
A、
參考資料【 】
總結
以上是生活随笔為你收集整理的[渝粤教育] 西北大学 数据结构 参考 资料的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于水星路由器怎样连接笔记本电脑水星路由
- 下一篇: 小米路由器怎么设置nat无线路由器如何设