當前位置:首頁 » 操作系統 » 演算法設計題集

演算法設計題集

發布時間: 2023-03-21 22:06:45

① 《計算機演算法設計與分析第5版習題及答案》pdf下載在線閱讀全文,求百度網盤雲資源

《計算機演算法設計與分析第5版習題及答案》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1oxH2d3SdEUN0rx6LJRNBoA?pwd=8i4l 提取碼:8i4l
簡介:本書是與「十二五」普通高等教育本科國家級規劃教材《計算機演算法設計與分析(第5版)》配套的輔助教材和國家精品課程教材,分別對主教材中的演算法分析題和演算法實現題給出了解答或解題思路提示。為了提高學生靈活運用演算法設計策略解決實際問題的能力,本書還將主教材中的許多習題改造成演算法實現題,要求學生設計出求解演算法並上機實現。本書教學資料包含各章演算法實現題、測試數據和答案,可在華信教育資源網免費注冊下載。本書內容豐富,理論聯系實際,可作為高等學校計算機科學與技術、軟體工程、信息安全、信息與計算科學等專業本科生和研究生學習計算機演算法設計的輔助教材,也是工程技術人員和自學者的參考書。

② SJTU 《演算法設計與分析》備考題

1、除根結點外,樹上每個結點( )。
a. 可有一個孩子、任意多個雙親
b. 可有任意多個孩子、一個雙親
c. 只有一個孩子、一個雙親
d. 可有任意多個孩子、任意多個雙親
2、採用順序查找方法查找長度為n的線性表時,每個元素的平均查找長度為( )。
a. (n+1)/2
b. n/2
c. (n-1)/2
d. n
3、採用二分查找方法查找長度為n的線性表時,每個元素的平均查找長度為( )。
a. O(log2n)
b. O(n2)
c. O(n)
d. O(nlog2n)
4、設順序線性表中有n個數據元素,則刪除表中第i個元素需向前移動( )個元素。
a. n-1-i
b. n-i
c. i
d. n+1-i
5、設順序循環隊列Q[0:M-1]的頭指針和尾指針分別為F和R,頭指針F總是指向隊頭元素的前一位置,尾指針R總是指向隊尾元素的當前位置,則該循環隊列中的元素個數為( )。
a. (R-F+M)%M
b. F-R
c. (F-R+M)%M
d. R-F
6、設輸入序列是1、2、3、…、n,經過棧的作用後輸出序列的第一個元素是n,則輸出序列中第i個輸出元素是( )。
a. n-1-i
b. 不能確定
c. n-i
d. n+1-i
7、設輸入序列為1、2、3、4、5、6,則通過棧的作用後可以得到的輸出序列為( )。
a. 5,3,4,6,1,2
b. 1,5,4,6,2,3
c. 3,1,2,5,4,6
d. 3,2,5,6,4,1
8、設用鏈表作為棧的存儲結構,則退棧操作( )。
a. 必須判別棧是否為滿
b. 必須判別棧是否為空
c. 對棧不作任何判別
d. 必須判別棧元素的類型
9、設用鄰接矩陣A表示有向圖G的存儲結構,則有向圖G中頂點i的入度為( )。
a. 第i列0元素的個數之和
b. 第i行0元素的個數之和
c. 第i列非0元素的個數之和
d. 第i行非0元素的個數之和
10、設某鏈表中最常用的操作是在鏈表的尾部插入或刪除元素,則選用下列( )存儲方式最節省運算時間。
a. 雙向鏈表
b. 雙向循環鏈表
c. 單向循環鏈表
d. 單向鏈表
11、設某棵二叉樹的高度為10,則該二叉樹上葉子結點最多有( )。
a. 1024
b. 256
c. 20
d. 512
12、設某棵二叉樹的中序遍歷序列為ABCD,先序遍歷序列為CABD,則後序遍歷該二叉樹得到序列為( )。
a. CDAB
b. BADC
c. CBDA
d. BCDA
13、設某棵二叉樹中有2000個結點,則該二叉樹的最小高度為( )。
a. 9
b. 11
c. 12
d. 10
14、設某棵二叉樹中只有度數為0和度數為2的結點,且度數為0的結點數為n,則這棵二叉樹中共有( )個結點。
a. n+1
b. 2n
c. 2n+1
d. 2n-1
15、設某有向圖的鄰接表中有n個表頭結點和m個表結點,則該圖中有( )條有向邊。
a. n-1
b. m
c. n
d. m-1
16、設某無向圖有n個頂點,則該無向圖的鄰接表中有( )個表頭結點。
a. 2n-1
b. n
c. n/2
d. 2n
17、設某無向圖中有n個頂點e條邊,則該無向圖中所有頂點的度之和為( )。
a. 2e
b. n
c. e
d. 2n
18、設某無向圖中有n個頂點e條邊,則建立該圖鄰接表的時間復雜度為( )。
a. O(n\*e)
b. O(n+e)
c. O(n2)
d. O(n3)
19、設某數據結構的二元組形式表示為A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},則數據結構A是( )。
a. 圖結構
b. 物理結構
c. 線性結構
d. 樹型結構
20、設某強連通圖中有n個頂點,則該強連通圖中至少有( )條邊。
a. n(n-1)
b. n
c. n+1
d. n(n+1)
21、設某完全無向圖中有n個頂點,則該完全無向圖中有( )條邊。
a. n
b. n-1
c. n(n-1)
d. n(n-1)/2
22、設某哈夫曼樹中有199個結點,則該哈夫曼樹中有( )個葉子結點。
a. 99
b. 101
c. 100
d. 102
23、設某二叉樹中度數為0的結點數為N0,度數為1的結點數為N1,度數為2的結點數為N2,則下列等式成立的是( )。
a. N0=N1+N2
b. N0=N2+1
c. N0=2N1+1
d. N0=N1+1
24、設有6個結點的無向圖,該圖至少應有( )條邊才能確保是一個連通圖。
a. 7
b. 6
c. 8
d. 5
25、設無向圖G中有n個頂點,則該無向圖的最小生成樹上有( )條邊。
a. 2n-1
b. n
c. n-1
d. 2n
26、設按照從上到下、從左到右的順序從1開始對完全二叉樹進行順序編號,則編號為i結點的左孩子結點的編號為( )。
a. i/2
b. 2i+1
c. 2i
d. 2i-1
27、設指針變數top指向當前鏈式棧的棧頂,則刪除棧頂元素的操作為( )。
a. top=top+1;
b. top->next=top;
c. top=top->next;
d. top=top-1;
28、設指針變數p指向雙向鏈表中結點A,指針變數s指向被插入的結點X,則在結點A的後面插入結點X的操作序列為( )。
a. p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;
b. s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
c. p->next=s; p->next->prior=s; s->prior=p; s->next=p->next;
d. s->prior=p;s->next=p->next;p->next->prior=s; p->next=s;
29、設指針變數p指向單鏈表中結點A,若刪除單鏈表中結點A,則需要修改指針的操作序列為( )。
a. q=p->next;q->data=p->data;p->next=q->next;free(q);
b. q=p->next;p->data=q->data;free(q);
c. q=p->next;p->next=q->next;free(q);
d. q=p->next;p->data=q->data;p->next=q->next;free(q);
30、設指針變數front表示鏈式隊列的隊頭指針,指針變數rear表示鏈式隊列的隊尾指針,指針變數s指向將要入隊列的結點X,則入隊列的操作序列為( )。
a. front->next=s;front=s;
b. rear->next=s;rear=s;
c. s->next=front;front=s;
d. s->next=rear;rear=s;
31、設指針q指向單鏈表中結點A,指針p指向單鏈表中結點A的後繼結點B,指針s指向被插入的結點X,則在結點A和結點B插入結點X的操作序列為( )。
a. p->next=s->next;s->next=p;
b. p->next=s;s->next=q;
c. s->next=p->next;p->next=-s;
d. q->next=s; s->next=p;
32、設帶有頭結點的單循環鏈表的頭指針為head,則其判空條件是( )。
a. head->next==head
b. head==NULL
c. head->next==NULL
d. head!= NULL
33、設哈夫曼樹中的葉子結點總數為m,若用二叉鏈表作為存儲結構,則該哈夫曼樹中總共有( )個空指針域。
a. 4m
b. 2m-1
c. 2m+1
d. 2m
34、設二叉樹的先序遍歷序列和後序遍歷序列正好相反,則該二叉樹滿足的條件是( )。
a. 任一結點無左孩子
b. 任一結點無右孩子
c. 高度等於其結點數
d. 空或只有一個結點
35、設一維數組中有n個數組元素,則讀取第i個數組元素的平均時間復雜度為( )。
a. O(1)
b. O(n)
c. O(n2)
d. O(nlog2n)
36、設一組權值集合W={2,3,4,5,6},則由該權值集合構造的哈夫曼樹中帶權路徑長度之和為( )。
a. 40
b. 45
c. 30
d. 20
37、設一棵完全二叉樹中有65個結點,則該完全二叉樹的深度為( )。
a. 7
b. 6
c. 5
d. 8
38、設一條單鏈表的頭指針為head,且該鏈表沒有頭結點,則其判空條件是( )。
a. head==NULL
b. head->next==head
c. head->next==NULL
d. head!=NULL
39、設F是由T1、T2和T3三棵樹組成的森林,與F對應的二叉樹為B,T1、T2和T3的結點數分別為N1、N2和N3,則二叉樹B的根結點的左子樹的結點數為( )。
a. N2+N3
b. N1-1
c. N1+N3
d. N2-1
40、若採用鄰接表存儲結構,則圖的深度優先搜索類似於二叉樹的()
a. 層次遍歷
b. 先根遍歷
c. 中根遍歷
d. 後根遍歷
41、若採用鄰接表存儲結構,則圖的廣度優先搜索類似於二叉樹的()
a. 先根遍歷
b. 後根遍歷
c. 層次遍歷
d. 中根遍歷
42、若線性表最常用的操作是存取第i個元素及其前驅的值,則採用( )存儲方式最節省時間。
a. 雙向鏈表
b. 順序表
c. 單鏈表
d. 單循環鏈表
43、若一組記錄的關鍵碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個記錄為基準得到的第一趟結果為( )。
a. 40,38,46,56,79,84
b. 40,38,46,84,56,79
c. 38,40,46,56,79,84
d. 40,38,46,79,56,84
44、若一個圖的邊集為 {(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)} ,則從頂點 A 開始對該圖進行深度優先搜索,得到的頂點序列可能為( )。
a. A,B,C,F,D,E
b. A,C,F,D,E,B
c. A,B,D,F,E,C
d. A,B,D,C,F,E
45、若一個圖的邊集為 {(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)} ,則從頂點 A 開始對該圖進行廣度優先搜索,得到的頂點序列可能為( )。
a. A,B,C,F,D,E
b. A,B,C,D,E,F
c. A,B,D,C,E,F
d. A,C,B,F,D,E
46、線性表若採用鏈式存儲結構時,要求內存中可用存儲單元的地址( )。
a. 連續或不連續都可以
b. 必須是連續的
c. 部分地址必須是連續的
d. 一定是不連續的
47、用鏈接方式存儲的隊列,在進行插入運算時( )。
a. 僅修改尾指針
b. 頭、尾指針都要修改
c. 僅修改頭指針
d. 頭、尾指針都不要修改
48、用鄰接表存儲圖所用的空間大小( )。
a. 只與圖的邊數有關
b. 與圖的頂點數和邊數都有關
c. 只與圖的頂點數有關
d. 與邊數的平方有關
49、樹的後根遍歷序列等同於該樹對應的二叉樹的( )。
a. 先序序列
b. 中序序列
c. 後序序列
d. 層次序列
50、樹型結構最適合用來表示( )。
a. 無序數據元素
b. 有序數據元素
c. 元素之間無聯系的數據
d. 元素之間具有分支層次關系的數據
51、棧。和隊列的共同點是( )。
a. 只允許在端點處插入和刪除元素
b. 都是先進後出
c. 都是先進先出
d. 沒有共同點
52、數據結構是研究數據的( )以及它們之間的相互關系。
a. 理想結構,抽象結構
b. 物理結構,邏輯結構
c. 理想結構,物理結構
d. 抽象結構,邏輯結構
53、數據的最小單位是( )。
a. 數據元素
b. 數據項
c. 數據類型
d. 數據變數
54、已知一個有向圖的邊集為 {<a,b>,<a,c>,<a,d>,<b,d>,<b,e>,<d,e>} ,則由該圖產生的一種可能的拓撲序列為( )。
a. a,b,c,d,e
b. a,c,b,e,d
c. a,b,d,e,b
d. a,c,d,b,e
55、對線性表進行二分查找時,要求線性表必須( )。
a. 以鏈接方式存儲
b. 以鏈接方式存儲,且結點按關鍵字有序排序
c. 以順序方式存儲,且結點按關鍵字有序排序
d. 以順序方式存儲
56、在長度為n的順序存儲的線性表中插入第i個元素(1≤i≤n)需向後移動( )個元素。
a. n-i
b. i
c. n-1-i
d. n-i+1
57、在用鄰接表表示圖時,對圖進行深度優先搜索遍歷的演算法的時間復雜度為( )。
a. O(n2)
b. O(n+e)
c. O(n3)
d. O(n)
58、在有向圖的鄰接表存儲結構中,頂點v在鏈表中出現的次數是( )。
a. 頂點v的度
b. 依附於頂點v的邊數
c. 頂點v的入度
d. 頂點v的出度
59、在有向圖G的拓撲序列中,若頂點Vi在頂點Vj之前,則下列情形不可能出現的是( )。
a. G中有一條從Vi到Vj的路徑
b. G中有弧
c. G中沒有弧
d. G中有一條從Vj到Vi的路徑
60、在下列存儲形式中,哪一個不是樹的存儲形式?( )
a. 孩子鏈表表示法
b. 順序存儲表示法
c. 孩子兄弟表示法
d. 雙親表示法
61、在一個單鏈表中,已知q所指結點是p所指結點的前驅結點,若在q和p之間插入s結點,則執行( )。
a. q->next = s;s->next = p;
b. s->next = p->next;p->next = s;
c. p->next = s->next;s->next = p;
d. p->next = s;s->next = q;
62、在一個具有n個頂點的無向圖中,每個頂點度的最大值為( )
a. n-1
b. n+1
c. n
d. 2(n-1)
63、圖的BFS生成樹的樹高比DFS生成樹的樹高( )。
a. 大或相等
b. 小
c. 小或相等
d. 大
64、含有n個結點的二叉樹採用二叉鏈表存儲時,空指針域的個數為( )。
a. n
b. n+1
c. n+2
d. n-1
65、關於無向圖的鄰接矩陣的說法中正確的是( )。
a. 矩陣中的非零元素個數等於圖的邊數
b. 矩陣中非全零元素的行數等於圖中的頂點數
c. 第i行上非零元素個數和第i列上非零元素個數一定相等
d. 第i行上與第i列上非零元素總和等於頂點Vi的度數
66、二叉樹的第k層的結點數最多為( )。
a. 2k
b. 2k -1
c.2k
d. 2k-1
67、二叉排序樹按( )遍歷可以得到一個從小到大的有序序列。
a. 後序
b. 中序
c. 層次
d. 先序
68、下面程序的時間復雜為( )。
for(i=1, s=0; i<=n; i++)
{ t=1;
for(j=1; j<=i; j++)
t=t*j; s=s+t;
}
a. O(n3)
b. O(n)
c. O(n2)
d. O(n4)
69、下面程序段的時間復雜度為( )。
s=i=0;
do { i=i+1; s=s+i;
} while(i<=n);
a. O(n)
b. O(nlog2n)
c. O(n2)
d. O(1)
70、下面關於線性表的敘述錯誤的是( )。
a. 線性表採用鏈式存儲不必佔用一片連續的存儲空間
b. 線性表採用順序存儲必須佔用一片連續的存儲空間
c. 線性表採用順序存儲便於插入和刪除操作的實現
d. 線性表採用鏈式存儲便於插入和刪除操作的實現
71、下述編碼中哪一個不是前綴編碼( )。
a. 0,10,110,111
b. 00,01,10,11
c. 1,01,000,001
d. 0,1,00,11
72、下列說法不正確的是( )。
a. 圖的深度遍歷不適用於有向圖
b. 圖的深度遍歷是一個遞歸過程
c. 遍歷的基本方法有兩種:深度遍歷和廣度遍歷
d. 圖的遍歷是從給定的源點出發每個頂點僅被訪問一次
73、下列有關圖遍歷的說法中不正確的是()。
a. 非連通圖不能用深度優先搜索法
b. 連通圖的深度優先搜索是一個遞歸過程
c. 圖的遍歷要求每一頂點僅被訪問一次
d. 圖的廣度優先搜索中鄰接點的尋找具有「先進先出」的特徵
74、下列哪種圖的鄰接矩陣為對稱矩陣? ( )
a. 帶權有向圖
b. 有向圖
c. 無向圖
d. 有向圖或無向圖
75、一個帶權的無向連通圖的最小生成樹( )。
a. 只有一棵
b. 一定有多棵
c. 有一棵或多棵
d. 可能不存在
76、順序表是線性表的()
a. 鏈式存儲結構
b. 順序存儲結構
c. 索引存儲結構
d. 散列存儲結構
77、線性表若採用鏈式存儲結構時,要求內存中可用存儲單元的地址()
a. 必須是連續的
b. 部分地址必須是連續的
c. 一定是不連續的
d. 連續或不連續都可以
78、一個棧的入棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()
a. e,d,c,b,a
b. d,e,c,b,a
c. d,c,e,a,b
d. a,b,c,d,e
79、在下列鏈表中,不能從任一結點出發訪問到表中的所有結點的是()
a. 單鏈表
b. 單向循環鏈表
c. 雙向循環鏈表
d. 循環鏈表
80、二叉樹結點度的集合為()。
a. (1)
b. (0,1,2)
c. (1,2)
d. (0)
81、以二分查找方法查找一個線性表時,此線性表必須是()。
a. 順序存儲的有序表
b. 鏈式存儲的有序表
c. 鏈表
d. 順序表
82、設哈夫曼樹的葉子結點的個數為n,那麼該樹的結點總數為()
a.2n
b.2n+1
c.2n-1
c.不能唯一確定
83、對二叉樹來說,第i層上至多有()個結點。
a. 2i
b. 2i-1
c. 2i-1
d. 2i-1-1
84、數據結構包括3個方面的內容,它們是()。
a. 數據、數據元素、數據項
b. 數據元素、數據處理、演算法實現
c. 數據元素、數據的邏輯結構、數據的存儲結構
d. 數據的邏輯結構、數據的存儲結構、數據的操作
85、數據在計算機存儲器內表示時,存儲結點連續存放且存儲順序與邏輯順序相同,這種存儲方式稱為()。
a. 索引存儲方式
b. 順序存儲方式
c. 鏈式存儲方式
d. 散列存儲方式
86、冒泡排序屬於()。
a. 插入排序
b. 選擇排序
c. 快速排序
d. 交換排序
87、下列程序段的時間復雜度為()。
i=1;j=0;
while(i+j<=n)
{if(i>j)j++;
elsei++;
}
a. O(n)
b. O(nlog2n)
c. O(i*j)
d. O(i+j)
88、下面程序的時間復雜為()。
for(i=1,s=0;i<=n;i++)
{t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}
a. O(n)
b. O(n2)
c. O(n3)
d. O(n4)
89、含有n個結點的二叉樹採用二叉鏈表存儲時,空指針域的個數為()。
a. n-1
b. n
c. n+1
d. n+2
90、設某完全無向圖中有n個頂點,則該完全無向圖中有()條邊。
a. n(n-1)/2
b. n(n-1)
c. n
d. n-1

1、調用一次深度優先遍歷可以訪問到圖中的所有頂點。(F)
2、分塊查找的平均查找長度不僅與索引表的長度有關,而且與塊的長度有關。(T)
3、冒泡排序在初始關鍵字序列為逆序的情況下執行的交換次數最多。(T)
4、滿二叉樹一定是完全二叉樹,完全二叉樹不一定是滿二叉樹。(T)
5、設一棵二叉樹的先序序列和後序序列,則能夠唯一確定出該二叉樹的形狀。(F)
6、線性表的順序存儲結構比鏈式存儲結構更好。(F)
7、不論是入隊列操作還是入棧操作,在順序存儲結構上都需要考慮「溢出」情況。(T)
8、完全二叉樹中的葉子結點只可能在最後兩層中出現。(T)
9、由樹轉化成二叉樹,該二叉樹的右子樹不一定為空。(F)
10、線性表中的所有元素都有一個前驅元素和後繼元素。(F)

1、head指向單鏈表的表頭,p指向單鏈表的表尾結點,則執行p->next=head後,該單鏈表構成 循環鏈表
2、在單鏈表中,若p和s是兩個指針,且滿足p->next與s相同,則語句p->next=s->next的作用是 刪除 s指向的結點。
3、在一個長度為n的順序表中的第i(1≤i≤n+1)個元素之前插入一個元素時,需向後移動的元素個數為 n-i+1 。
4、設順序線性表中有n個數據元素,則刪除表中第i個元素需向前移動 n-i 個元素。
5、衡量一個演算法,除了正確性之外,主要考慮的兩個方面是 時間復雜度 和 空間復雜度 。
6、在一個具有n個頂點的無向完全圖中,包含 n(n-1)/2 條邊。
7、對於一個具有n個頂點的圖,若採用鄰接矩陣表示,則矩陣大小為 n^2 。
8、採用順序查找方法查找長度為n的線性表時,每個元素的平均查找長度為 (n+1)/2 。
9、樹型結構最適合用來表示元素之間具有 分支層次關系 的數據。

1、已知一棵二叉樹的先(前)序遍歷序列為ABDEGCFH,中序遍歷序列為DBGEACFH,請畫出該二叉樹,並寫出該二叉樹的後序序列。

2、畫出一棵二叉樹,使其:中序序列為DCBGEAHFIJK,後序序列:DCEGBFHKJIA

3、請寫出對(53, 87, 12, 61,98,17, 97, 75, 53, 26)進行一次劃分的過程。

4、有一結點序列為(7,19,2,6,32,3,21,10),要求以該序列作為帶權二叉樹中結點的權值,構造並畫出一棵哈夫曼樹,並計算其帶權路徑長度。

5、對下面所示的無向網,要求構造出一棵最小生成樹(中間過程可以省略),並計算該最小生成樹的權。

6、下面所示為有向圖的鄰接表,試畫出該有向圖,並給出由頂點V1開始的深度優先遍歷和廣度優先遍歷的結果。

7、有一結點序列為(45,24,53,12,28,90),要求構造並畫出一棵二叉排序樹,並輸出以中序方式遍歷該樹的序列。

③ 演算法分析與設計題目

第一題用貪心思想 找出用時最短的m個作業交給機器同時開始加工 然後再依次將剩下的作業中最短完成作業取出放入已完成的機器加工 當最後一台機器完工時間就是所用最短時間 思路是這樣子 具體演算法實現的話。。由於我也是學生=、=寫代碼還不是很熟練。。可能等我寫好了你考試來不及。。。你還是自己來吧

第二題
1.背包問題是什麼=、=我們教材不一樣 不了解具體問題。。
2.4皇後
#include<iostream.h>
const int n = 4 ;
const int n_sub = n - 1 ;
int queen[n] ;
bool row[n] ;
bool passive[2*n-1];
bool negative[2*n-1];
int main()
{
int cur = 0 ;
bool flag = false ;
queen[0] = -1 ;
int count = 0 ;
while(cur>=0)
{
while(cur>=0 && queen[cur]<n && !flag)
{
queen[cur]++ ;
if(queen[cur] >= n)
{
queen[cur] = -1 ;
cur-- ;
if(cur>=0)
{
row[queen[cur]] = false ;
passive[queen[cur] + cur] = false ;
negative[n_sub + cur - queen[cur]] = false ;
}
false ;
}
else
{
if(row[queen[cur]] == false)
{
flag = true ;
if( passive[queen[cur] + cur] == true || negative[n_sub + cur - queen[cur]] == true) {
flag = false ;
}
else
flag = true ;
if(flag) {
if(cur == n-1)
{
count++ ;
}
row[queen[cur]] = true ;
passive[queen[cur] + cur] = true ;
negative[n_sub + cur - queen[cur]] = true ;
cur++ ;
if(cur >= n) {
cur-- ;
row[queen[cur]] = false ;
passive[queen[cur] + cur] = false ;
negative[n_sub + cur - queen[cur]] = false ;
}
flag = false ;
}
}
}
}
}
cout<<n<<"皇後問題一共有"<<count<<"種解法"<<endl ;
return 0 ;
}
這個是代碼。。。狀態空間樹這里畫不出來。。。

第三題
你網路下基本都有的=、=。。。我網路出來不好意思貼了你自己去看下吧
比如1.的答案:
最壞情況給出了演算法執行時間的上界,我們可以確信,無論給什麼輸入,演算法的執行時間都不會超過這個上界,這樣為比較和分析提供了便利。

④ 演算法設計與分析習題解答(第2版)的目錄

第1章演算法引論
習題1-1 實參交換
習題1-2 方法頭簽名
習題1-3 數組排序判定
習題1-4 函數的漸近表達式
習題1-5 O(1)和O(2)的區別
習題1-7 按漸近階排列表達式
習題1-8 演算法效率
習題1-9 硬體效率
習題1-10 函數漸近階
習題1-11 n!的階
習題1-12 平均情況下的計算時間復雜性
演算法實現題1-1 統計數字問題
演算法實現題1-2 字典序問題
演算法實現題1-3 最多約數問題
演算法實現題1-4 金幣陣列問題
演算法實現題1-5 最大間隙問題
第2章 遞歸與分治策略
習題2-1 Hanoi塔問題的非遞歸演算法
習題2-2 7個二分搜索演算法
習題2-3 改寫二分搜索演算法
習題2-4 大整數乘法的O(n1Og(3/2))演算法
習題2-5 5次7//3位整數的乘法
習題2-6 矩陣乘法
習題2-7 多項式乘積
習題2-8 不動點問題的O(1O9n)時間演算法.
習題2-9 主元素問題的線性時間演算法
習題2-10 無序集主元素問題的線性時間演算法
習題2-11 O(1)空間子數組換位演算法
習題2-12 O(1)空間合並演算法
習題2-13 n段合並排序演算法
習題2-14 自然合並排序演算法
習題2-15 最大值和最小值問題的最優演算法
習題2-16 最大值和次大值問題的最優演算法
習題2-17 整數集合排序
習題2-18 第k小元素問題的計算時間下界」
習題2-19 非增序快速排序演算法
習題2-20 隨機化演算法
習題2-21 隨機化快速排序演算法
習題2-22 隨機排列演算法」
習題2-23 演算法qSort中的尾遞歸
習題2-24 用棧模擬遞歸
習題2-25 演算法se1ect中的元素劃分
習題2-26 O(nlogn)時間快速排序演算法
習題2-27 最接近中位數的k個數
習題2-28 X和y的中位數
習題2-29 網路開關設計
習題2-32 帶權中位數問題
習題2-34 構造Gray碼的分治演算法
習題2-35 網球循環賽日程表
演算法實現題2-1 輸油管道問題(習題2-3O)
演算法實現題2-2 眾數問題(習題2-31)
演算法實現題2-3 郵局選址問題(習題2-32)
演算法實現題2-4 馬的Hami1tOn周遊路線問題(習題2-33)
演算法實現題2-5 半數集問題
演算法實現題2-6 半數單集問題
演算法實現題2-7 士兵站隊問題
演算法實現題2-8 有重復元素的排列問題
演算法實現題2-9 排列的字典序問題
……
第3章 動態規劃
第4章 貪心演算法
第5章 回溯法
第6章 分支限界法
第7章 概率演算法
第8章 NP完全性理論
第9章 近似演算法
第10章演算法優化策略
第11章 在線演算法設計

⑤ 資料結構試題求正確答案

資料結構試題求正確答案

1.內部排序和外部排序
2.鄰接表和十字連結串列
3.線性表,樹,圖
4.63
5.θ(n),θ(lg n),θ(n lg n)
6.直接定址法晌運,隨機法
7.連結串列
8.根節點0,葉節點悉碧4,9,10,7,8,最大度的是0,節點0的後代是1,2,3
9.空的條件棧頂位置是m-1.滿的條件是棧頂位置是-1
10,資料結構和抽象資料型別關系:a.「資料結構」定義為一個二元組(D,S),即兩個集合,D是資料元素的集合,S是資料元素之間一個或多個關系的集合。
b.「抽象資料型別」本質是「資料型別」,與計算機相關,涉及資料的儲存及如何用儲存來反應資料元素之間的關系。它定義為一個三元組(D,S,P),加上的P是定義的一組針對儲存的資料操作(如插入,刪除,排序等)。
c.總之「抽象資料型別」是「物理」概念,「資料結構」是「邏輯」概念。「抽象資料型別」來實現「資料結構」。
以上回答你滿意么?

求此資料結構試題正確答案

1.內部排序和外部排序
2.鄰接表和十字連結串列
3.線性表,樹,圖
4.63
5.θ(n),θ(lg n),θ(n lg n)
6.直接定址法,隨機法
7.連結串列
8.根節點0,葉節點4,9,10,7,8,最大度的是0,節點0的後代是1,2,3
9.空的條件棧頂位置是m-1.滿的條件是棧頂位置是-1
10,資料結構和抽象資料型別關系:a.「資料結構」定義為一個二元組(D,S),即兩個集合,D是資料元素的集合,S是資料元素之間一個或多個關系的集合。
b.「抽象資料型別」本質是「資料型別」,與計算機相關,涉及資料的儲存及如何用儲存來反應資料元素之間的關系。它定義為一個三元組(D,S,P),加上的P是定義的一組針對儲存的資料操作(如插入,刪除,排序等)。
c.總之「抽象資料型別」是「物理」概念,「資料結構」是「邏輯」概念。「抽象資料型別」來實現「資料結構」。
希望對你能有所幫助。

尋一份《資料結構》試題及答案

《資料結構》試題一、選擇題(每小題2分,共30分)1. 若某線性表中最常用的操作是取第i 個元素和找第i個元素的前趨元素,則採用( )儲存方式最節省時間。A、單鏈表 B、雙鏈表 C、單向迴圈 D、順序表2. 串是任意有限個( )A、符號構成的序列 B、符號構成的集合C、字元構成的序列 D、字元構成的集合3. 設矩陣A(aij ,l≤i,j≤ 10)的元素滿足:aij≠0(i≥j, l≤i, j≤ 10)aij=0 (i<j, l≤i, j≤ 10)現將A的所有非0元素以行序為主序存放在首地址為2000的儲存區域中,每個元素佔有4個單元,則元素A[9][5]的首址為A、2340 B、2336 C、2164 D、睜謹舉21604. 如果以連結串列作為棧的儲存結構,則退棧操作時( )A、 必須判別棧是否滿 B、 對棧不作任何判別C、 必須判別棧是否空 D、 判別棧元素的型別5. 設陣列Data[0..m]作為迴圈佇列SQ的儲存空間,front為隊頭指標,rear為隊尾指標,則執行出隊操作的語句為( )A、front=front+1 B、front=(front+1)% mC、rear=(rear+1)%m D、front=(front+1)%(m+1)6. 深度為6(根的層次為1)的二叉樹至多有( )結點。A、 64 B、32 C、31 D、637. 將含100個結點的完全二叉樹從根這一層開始,每層上從左到右依次對結點編號,根結點的編號為1。編號為49的結點X的雙親編號為( )A、24 B、25 C、23 D、無法確定8. 設有一個無向圖G=(V,E)和G』=(V』,E』)如果G』為G的生成樹,則下面不正確的說法是( )A、G』為G 的子圖 B、G』為G 的邊通分量C、G』為G的極小連通子圖且V』=V D、G』為G的一個無環子圖9. 用線性探測法查詢閉散列表,可能要探測多個雜湊地址,這些位置上的鍵值( )A、 一定都是同義詞 B、一定都不是同義詞 C、都相同 D、不一定都是同義詞10. 二分查詢要求被查詢的表是( )A、 鍵值有序的連結表 B、連結表但鍵值不一定有序C、 鍵值有序的順序表 D、順序表但鍵值不一定有序11. 當初始序列已經按鍵值有序,用直接插入演演算法對其進行排序,需要迴圈的次數為( )A、n2 B、nlog2n C、log2n D、n-1 12. 堆是一個鍵值序列{k1,k2,…, kn},對i=1,2,…,|_n/2_|,滿足( )A、ki≤k2i≤k2i+1 B、ki<k2i+1<k2iC、ki≤k2i且ki≤k2i+1(2i+1≤n) D、ki≤k2i 或ki≤k2i+1(2i+1≤n) 13.一個具有n個頂點的無向完全圖的邊數為( )A、n(n+1)/2 B、n(n-1)/2 C、n(n-1) D、n(n+1)14.在索引順序表中查詢一個元素,可用的且最快的方法是( )A、用順序查詢法確定元素所在塊,再用順序查詢法在相應塊中查詢B、用順序查詢法確定元素所在塊,再用二分查詢法在相應塊中查詢C、用二分查詢法確定元素所在塊,再用順序查詢法在相應塊中查詢D、用二分查詢法確定元素所在塊,再用二分查詢法在相應塊中查詢15.若某線性表中最常用的操作是在最後一個元素之後插入一個元素和刪除最後一個元素,則採用( )儲存方式最節省運算時間。A、 單鏈表 B、雙鏈表C、帶頭結點的雙迴圈連結串列D、容量足夠大的順序表 二、判斷題(每小題1分,共10分)1.雙鏈表中至多隻有一個結點的後繼指標為空。( )2.在迴圈佇列中,front指向佇列中第一個元素的前一位置,rear指向實際的隊尾元素,佇列為滿的條件是front=rear。( )3.對連結串列進行插入和刪除操作時,不必移動結點。( )4.棧可以作為實現程式設計語言過程呼叫時的一種資料結構。( )5.在一個有向圖的拓樸序列中,若頂點a在頂點b之前,則圖中必有一條弧<a,b>。( )i6.對有向圖G,如果從任一頂點出發進行一次深度優先或廣度優先搜尋就能訪問每個頂點,則該圖一定是完全圖。( )7.「順序查詢法」是指在順序表上進行查詢的方法。( )8.向二叉排序樹插入一個新結點時,新結點一定成為二叉排序樹的一個葉子結點。()9.鍵值序列{A,C,D,E,F,E,F}是一個堆。10.二路歸並時,被歸並的兩個子序列中的關鍵字個數一定要相等。() 三、填空題(每小題2分,共20分)1.在帶有頭結點的單鏈表L中,若要刪除第一個結點,則需執行下列三條語句:________;L->next=U->next;free(U);2.有一個長度為20的有序表採用二分查詢方法進行查詢,共有______個元素的查詢長度為3。3.採用氣泡排序對有n個記錄的表A按鍵值遞增排序,若L的初始狀態是按鍵值遞增,則排序過程中記錄的比較次數為_____。若A的初始狀態為遞減排列,則記錄的交換次數為_______。4.在無頭結點的雙鏈表中,指標P所指結點是第一個結點的條件是______。5.G為無向圖,如果從G的某個頂點出發,進行一次廣度優先搜尋,即可訪問圖的每個頂點,則該圖一定是_____圖。6.如果一個有向圖中沒有______,則該圖的全部頂點可能排成一個拓撲序列。7.深度為8(根的層次號為1)的滿二叉樹有______個葉子結點。 8.將一棵有100個結點的完全二叉樹按層編號,則編號為49的結點X,其雙親PARENT(X)的編號為_______。9.設某閉散列表HT未滿,雜湊函式H(KEY)為鍵值第一字母在字母表中的序號,處理沖突方法為線性探測法,請在下列演演算法劃線處填上適當內容,以實現按鍵值第一字母的順序輸出閉散列表中所有鍵值的演演算法。void prinord(keytype HT[m]) { for(i=1;i<=26;i++) { j=i; while(____________________) { if (____________________) printf(「datatype」,HT[j]); j=(j+1)% m; } } }10.設有一個鏈隊,結點結構為data|next,front為隊頭指標,rear為隊尾指標,當執行入隊操作時需執行下列語句:malloc(p);p->data=x; p->next=NULL;________________;________________; 四、簡答題:(每小題4分,共20分)1. 對於一個有10000個結點的二叉樹,樹葉最多有多少個?最少有多少個?2. 已知一棵二叉樹的中序序列和後序序列分別為: DBGEACHF和DGEBHFCA,則該二叉樹的前序序列是什麼?3. 設有1000個無序的元素,需排出前10個最大(小)的元素,你認為採用哪種排序方法最快?為什麼?4. 在KMP演演算法中,已知模式串為ADABCADADA ,請寫出模式串的next[j]函式值。5. 中序遍歷的遞回演演算法平均空間復雜度為多少? 五、 演演算法設計題(每小題10分,共20分)1. 試編寫一個演演算法,判斷一給定的整型陣列a[n]是不是一個堆。2. 一棵二叉樹的繁茂度定義為各層結點數的最大值與樹的高度的乘積。試寫一高效演演算法,求二叉樹的繁茂度。參考答案一、選擇題1、D 2、C 3、D 4、C 5、D 6、D 7、A 8、B 9、D 10、C 11、D 12、C 13、B14、C15、D二、判斷題 1. √ 2. × 3. √ 4. √ 5. × 6. × 7. × 8. √ 9. √ 10. × 三、填空題1.U=L - > next2.4。3.n-1、n(n-1)/2。4.p - > prior = NULL。5.連通6.迴路或環7.28-1 = 27 = 1288.249.HT[j]!=NULL或HT[j]不為空、H(HT[j])=I10.rear - > next = p、rear = p四、簡答題:1. 答: 最多是完全二叉樹的形態,即5000個葉子;最少是單支樹的形態,即1個葉子。2.答:是:ABDEGCFH3. 答:用錦標賽排序或堆排序很合適,因為不必等全部元素排完就能得到所需結果,時間效率為O(nlog2n); 即O(1000log21000)=O(10000) 錦標賽排序的准確比較次數為:n-1+9log2n=999+9log21000=999+9×10=1089堆排序的准確比較次數為:n-1+9log2n=999+9log21000=999+9×10=1089若用氣泡排序也較快,最多耗費比較次數為(n-1+n-2+……+n-10)=10n-55=10000-55=9945(次)4. 答: 01121123435. 答: 要考慮遞回時佔用了棧空間,但遞回次數最多不超過樹的高度,所以空間復雜度為O(log2n) 五、 演演算法設計題1.解:提示:堆的定義是:ki<k2i和K2i+1 void SortA(sqlist &A, int n) { if(n==0) return(0); 空表if (a[1]<a[2]) { for( i=1; i<=n/2; i++) if (a[i]>a[2*i]|| a[i]>a[2*i+1])return(-1);return(minleap)};else { for( i=1; i<=n/2; i++) if (a[i]<a[2*i]|| a[i]<a[2*i+1])return(-1);return(「maxleap」)};}2. 要用層次遍歷以及佇列來處理,可以增設一個寬度計數器,在統計完每一層的結點個數之後,再從計數器中挑出最大值。typedef struct { BTNode node; int layer; layer是結點所在層數 } BTNRecord, r ; int Width(Bitree T ){ 求樹寬 int count[ ]; 增開count向量,存放各層對應的結點數 InitQueue(Q); 佇列初始化,Q的元素為BTNRecord型別 EnQueue(Q,{T, 0}); 根結點入隊, 0 表示count[0],下標值 while(!QueueEmpty(Q)) { DeQueue(Q, r); 結點出隊 count[r.layer]++; 出隊時再把結點對應層的計數器加if(r.node->lchild) EnQueue(Q,{r.node->lchild, r.layer+1}); if(r.node->rchild) EnQueue(Q,{r.node->rchild, r.layer+1}); } 按層序入隊時要隨時標注結點所在層號 h=r.layer; 最後一個佇列元素所在層就是樹的高度 for(maxn=count[0], i=1; h; i++) if(count[i]>maxn) maxn=count[i]; 求出哪一層結點數最多 return (h*maxn)} Width

誰有資料結構期末試題及答案?

我有資料結構那本書的答案,不知道你需不需要,需要的話發訊息聯絡。

結構中有個網殼結構··求正確答案

嗨,你好!
網殼是網架的曲面表現形式。網殼結構又包括單層網殼結構、預應力網殼結構、板錐網殼結構、肋環型索承網殼結構、單層叉筒網殼結構等。
( l )強度、剛度分析
網殼結構的內力和位移可按彈性階段進行計算。網殼結構根據網殼型別、節點構造,設計階段可分別選用不同的方法進行內力、位移計算:
l )雙層網殼宜採用空間桿系有限元法進行計算;
2 )單層網殼宜採用空間梁系有限元法進行計算;
3 )對單、雙層網殼在進行方案選擇和初步設計時可採用擬殼分析法進行估算。
網殼結構的外荷載可按靜力等效的原則將節點所轄區域內的荷載集中作用在該節點上。分析雙層網殼時可假定節點為鉸接,桿件只承受軸向力;分析單層網殼時假定節點為剛接,桿件除承受軸向力外,還承受彎矩、剪力等。當桿件上作用有區域性荷載時,必須另行考慮區域性彎曲內力的影響。對於單個球面網殼、圓柱面網殼和雙曲拋物面網殼的風載體型系數,可按《建築結構荷載規范》(GB 50009 一2001 ) 取值;對於多個連線的球面網殼、圓柱面網殼和雙曲拋物面網殼,以及各種復雜體形的網殼結構,應根據模型風洞試驗確定風載體型系數。
( 2 )穩定性分析
網殼的穩定性可按考慮幾何非線性的有限元分析方法(荷載認一位移全過程分析)進行計算,分析中可假定材料保持為線彈性。用非線性理論分析網殼穩定性時,一般採用空間桿系非線性有限元法,關鍵是臨界荷載的確定。單層網殼宜採用空間梁系有限元法進行計算。
球面網殼的全過程分析可按滿跨均布荷載進行,圓柱面網殼和橢圓拋物面網殼宜補充考慮半跨活荷載分布。進行網殼全過程分析時應考慮初始曲面形狀的安裝偏差影響;可採用結構的最低屈曲模態作為初始缺陷分布模態,其最大計算值可按網殼跨度的1 /300 取值。
進行網殼結構全過程分析求得的第一個臨界點處的荷載值,可作為該網殼的極限承載力。將極限承載力除以系數K 後,即為按網殼穩定性確定的容許承載力(標准值)。
( 3 )抗震分析
在設防烈度為7 度的地區,網殼結構可不進行豎向抗震計算,但必須進行水平抗震計算。在設防烈度為8 度、9 度地區必須進行網殼結構水平與豎向抗震計算。
摘錄 網路

求網計(專升本)《資料結構》試題(模A) 2004-5-1答案

可以考試的,報班意義不大。把重要的知識點整理一下,准備好筆記本和錯題集,錯題集用來記錄自己做錯的題,筆記本記錄一些容易忽略細節和重點。 做題不一定要做難題,基礎是根本,每次考試不要著重在一個題目上,要放寬心態,不要急,總之,要自信,相信自己一定可

資料結構(C#語言版)筆試試題與答案

《資料結構》期末考試試卷( A )
一、 選擇題(每小題2分,共24分)
1.計算機識別、儲存和加工處理的物件被統稱為( A )
A.資料 B.資料元素
C.資料結構 D.資料型別
2.棧和佇列都是( A )
A.限制存取位置的線性結構 B.順序儲存的線性結構
C.鏈式儲存的線性結構 D.限制存取位置的非線性結構
3.鏈棧與順序棧相比,比較明顯的優點是( D )
A.插入操作更加方便 B.刪除操作更加方便
C.不會出現下溢的情況 D.不會出現上溢的情況
4.採用兩類不同儲存結構的字串可分別簡稱為( B )
A.主串和子串 B.順序串和鏈串
C.目標串和模式串 D.變數串和常量串
5. 一個向量第一個元素的儲存地址是100,每個元素的長度為2,則第5個元素的地址是:B
A. 110 B .108
C. 100 D. 120
6.串是一種特殊的線性表,其特殊性體現在:B
A.可以順序儲存 B .資料元素是一個字元
C. 可以連結儲存 D. 資料元素可以是多個字元
7.設高度為h的二叉樹上只有度為0和度為2的結點,則此類二叉樹中所包含的結點數至少為: C
A. 2h B .2h-1
C. 2h+1 D. h+1
軟體開發網 mscto.
8.樹的基本遍歷策略可分為先根遍歷和後根遍歷;二叉樹的基本遍歷策略可分為先序遍歷、中序遍歷和後序遍歷。這里,我們把 由樹轉化得到的二叉樹叫做這棵樹對應的二叉樹。下列結論哪個正確? A
A. 樹的先根遍歷序列與其對應的二叉樹的先序遍歷序列相同
B .樹的後根遍歷序列與其對應的二叉樹的後序遍歷序列相同
C. 樹的先根遍歷序列與其對應的二叉樹的中序遍歷序列相同
D. 以上都不對
9.一個有n個頂點的無向圖最多有多少邊?C
A. n B .n(n-1)
C. n(n-1)/2 D. 2n
10.在一個圖中,所有頂點的度數之和等於所有邊數的多少倍?C
A. 1/2 B .1
C. 2 D. 4
11.當在二叉排序樹中插入一個新結點時,若樹中不存在與待插入結點的關鍵字相同的結點,且新結點的關鍵字小於根結點的關鍵字,則新結點將成為( A )
A.左子樹的葉子結點 B.左子樹的分支結點
C.右子樹的葉子結點 D.右子樹的分支結點
軟體開發網 mscto.
12.對於雜湊函式H(key)=key%13,被稱為同義詞的關鍵字是( D )
A.35和41 B.23和39
C.15和44 D.25和51
二、已知某棵二叉樹的前序遍歷結果為A,B,D,E,G,C,F,H,I,J,其中中序遍歷的結果為D,B,G,E,A,H,F,I,J,C。請畫出二叉的具體結構。(注意要寫出具體步驟)(10分)
原理見課本128頁
三、有圖如下,請寫出從頂點c0出發的深度優先及寬度優先遍歷的結果。(10分)
深度優先;C0-C1-C3-C4-C5-C2
寬度優先:C0-C1-C2-C3-C4-C5
四、有圖如下,按Kruskal演演算法求出其最小生成樹。要求寫出完整的步驟。(10分)
原理見課本250頁
五、給定線性表(12,23,45,66,76,88,93,103,166),試寫出在其上進行二分查詢關鍵字值12,93,166的過程。並寫出二分查詢的演演算法。(20分)
0 1 2 3 4 5 6 7 8
12 23 45 66 76 88 93 103 166
過程:
mid=(0+8)/2=4
high=3,low=0 mid=1
high=0,low=0 mid=0(找到12)
high=8,low=5,mid=6(找到93)
high=8,low=7,mid=7
high=8 low=8 mid=8
演演算法:見課本84頁上
六、知單鏈表的結點結構為
Data next
下列演演算法對帶頭結點的單鏈表L進行簡單選擇排序,使得L中的元素按值從小到大排列。
請在空缺處填入合適的內容,使其成為完整的演演算法。 (可用文字說明該演演算法的基本思想及執行的過程,10分)
void SelectSort(LinkedList L)
{
LinkedList p,q,min;
DataType rcd;
p= (1) ;
while(p!=NULL) {
min=p;
q=p->next;
while(q!=NULL){
if( (2) )min=q;
q=q->next;
}
if( (3) ){
rcd=p->data;
p->data=min->data;
min->data=rcd;
}
(4) ;
}
}
本題不會。嘿嘿。。。。
七、一個完整的演演算法應該具有哪幾個基本性質?分別簡要說明每一性質的含意。(5分)
輸入:
四個基本性質:1.輸入:有零個或多個有外部提供的量作為演演算法的輸入
2:輸出:演演算法產生至少一個量作為輸出
3.:確定性:組成演演算法的每條指令是清晰的,無歧異的。
4.:有限性:演演算法中每條指令的執行次數是有限的,執行每條指令的時間也是有限的
八、何謂佇列的"假溢"現象?如何解決?(5分)
佇列的假溢現象是指陣列實現的順序佇列中,隊尾指標已到達陣列的下表上界產生上溢而隊頭指標之前還有若干 空間閑置的現象。解決的辦法之一是利用迴圈佇列技術使陣列空間的首尾相連。
九、說明並比較檔案的各種物理結構。(6分)

資料結構習題!跪求答案

#include <stdio.h>
#include <stdlib.h>
typedef struct lnode
{ int data;
struct lnode *next;
}lnode,*linklist;
linklist listinsert_l(linklist l,int i,int e)
{
linklist p,s;
int j;
p=l;
j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
exit(0);
s=(linklist)malloc(sizeof(lnode));
s->data=e;
s->next=p->next;
p->next=s;
l=l->next;
printf("插入後的連結串列為: ");
while(l)
{
printf("%d ",l->data);
l=l->next;
}
return 0;
}
int listdelete_l(linklist l,int i,int b)
{
linklist p,q;
int j;
p=l;
j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!(p->next)||j>i-1)
exit(0);
q=p->next;
p->next=q->next;
b=q->data;
free(q);
l=l->next;
printf("刪除後的連結串列為: ");
while(l)
{
printf("%d ",l->data);
l=l->next;
}
return b;
}
void main()
{
linklist l,p;
int n,i,e,j,a,b;
printf("輸入結點的個數: ");
scanf("%d",&n);
l=(linklist)malloc(sizeof(lnode));
l->next=NULL;
printf("輸入連結串列的資料: ");
for(i=n;i>0;--i)
{
scanf("%d",&a);
p=(linklist)malloc(sizeof(lnode));
p->data=a;
p->next=l->next;
l->next=p;
}
printf("輸入要插入的位置和數: ");
scanf("%d%d",&j,&e);
listinsert_l(l,j,e);
printf(" 輸入要刪除的位置: ");
scanf("%d",&i);
b=listdelete_l(l,i,b);
printf(" 刪除的數為:%d ",b);
}

這個資料結構選擇題目選哪個答案正確?

D,連結串列的話

求資料結構習題集答案

資料下載網址:大學空間站(網路不讓回答有網址的貼,所以沒法給准確的資料地址)
下載方法:網路搜索下「大學空間站」,開啟該網,注冊大學空間站會員,下載。、、、、、、、、

⑥ 演算法設計題 要求:輸出三個數中最大的數 請畫出流程圖

rivate Sub Command1_Click()。

Dim a1, a2, a3, max1 As Integer。

a1 = InputBox("請輸入第1個數")。
max1 = a1。

a2 = InputBox("請輸入第2個數")。

If a2 > max1 Then max1 = a2。
a3 = InputBox("請輸入第3個數")。

If a3 > max1 Then max1 = a3。
MsgBox (max1)。
End Sub。

(6)演算法設計題集擴展閱讀:

作為診斷工具,它能夠輔助決策制定,讓管理者清楚地知道,問題可能出在什麼地方,從而確定出可供選擇的行動方案。

流程圖有時也稱作輸入-輸出圖。該圖直觀地描述一個工作過程的具體步驟。流程圖對准確了解事情是如何進行的,以及決定應如何改進過程極有幫助。這一方法可以用於整個企業,以便直觀地跟蹤和圖解企業的運作方式。

流程圖使用一些標准符號代表某些類型的動作,如決策用菱形框表示,具體活動用方框表示。但比這些符號規定更重要的,是必須清楚地描述工作過程的順序。流程圖也可用於設計改進工作過程,具體做法是先畫出事情應該怎麼做,再將其與實際情況進行比較。

⑦ Java演算法設計:迭代器實現排序(求各位大佬各抒己見)

public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int e = arr.length - 1; e > 0; e--) {
for (int i = 0; i < e; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
}
}
}

⑧ 請高手進來解答一下這道演算法設計與分析的題目,謝謝了!!

設有n個活動的集合E={1,2,…,n},其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有一個活動能使用這一資源。每個活動i都有一個要求使用該資源的起始時間si和一個結束時間fi,且si<fi。如果選擇了活動i,則它在半開時間區間[si,fi)內佔用資源。若區間[si,fi)與區間[sj,fj)不相交,則稱活動i與活動j是相容的。也就是說,當si≥fj或sj≥fi時,活動i與活動j相容。

在下面所給出的解活動安排問題的貪心演算法greedySelector:

publicstaticintgreedySelector(int[]s,int[]f,booleana[])

{

intn=s.length-1;

a[1]=true;

intj=1;

intcount=1;

for(inti=2;i<=n;i++){

if(s[i]>=f[j]){

a[i]=true;

j=i;

count++;

}

elsea[i]=false;

}

returncount;

}

由於輸入的活動以其完成時間的非減序排列,所以演算法greedySelector每次總是選擇具有最早完成時間的相容活動加入集合A中。直觀上,按這種方法選擇相容活動為未安排活動留下盡可能多的時間。也就是說,該演算法的貪心選擇的意義是使剩餘的可安排時間段極大化,以便安排盡可能多的相容活動。

演算法greedySelector的效率極高。當輸入的活動已按結束時間的非減序排列,演算法只需O(n)的時間安排n個活動,使最多的活動能相容地使用公共資源。如果所給出的活動未按非減序排列,可以用O(nlogn)的時間重排。

例:設待安排的11個活動的開始時間和結束時間按結束時間的非減序排列如下:

i 1 2 3 4 5 6 7 8 9 10 11

S[i] 1 3 0 5 3 5 6 8 8 2 12

f[i] 4 5 6 7 8 9 10 11 12 13 14

熱點內容
什麼手機安卓系統80 發布:2024-04-20 21:37:29 瀏覽:379
浙江萬里的伺服器地址 發布:2024-04-20 21:16:59 瀏覽:407
ndklinux下載 發布:2024-04-20 21:05:22 瀏覽:566
王者榮耀解壓資源包97 發布:2024-04-20 20:46:10 瀏覽:397
蘋果手機沒有密碼怎麼打開 發布:2024-04-20 20:45:25 瀏覽:93
如何用濃硝酸配置百分之2的硝酸 發布:2024-04-20 20:44:39 瀏覽:797
微信商城java源碼下載 發布:2024-04-20 20:27:35 瀏覽:121
用友軟體sql 發布:2024-04-20 20:10:01 瀏覽:933
python倒著循環 發布:2024-04-20 20:09:52 瀏覽:759
雲伺服器遠程電腦版 發布:2024-04-20 20:09:12 瀏覽:259