2019江西省資料結構考試深入

2022-10-01 13:09:04 字數 826 閱讀 6078

1、題目中要求矩陣兩行元素的平均值按遞增順序排序,由於每行元素個數相等,按平均值排列與按每行元素之和排列是乙個意思。所以應先求出各行元素之和,放入一維陣列中,然後選擇一種排序方法,對該陣列進行排序,注意在排序時若有元素移動,則與之相應的行中各元素也必須做相應變動。

void translation(float *matrix,int n)

本演算法對n×n的矩陣matrix,通過行變換,使其各行元素的平均值按遞增排列。

sum=p[i]; p[i]=p[k]; p[k]=sum; //交換一維陣列中元素之和.

iffor i

free(p); //釋放p陣列.

translation

演算法分析] 演算法中使用選擇法排序,比較次數較多,但資料交換(移動)較少.若用其它排序方法,雖可減少比較次數,但資料移動會增多.演算法時間複雜度為o(n2).

2、假設以i和o分別表示入棧和出棧操作。棧的初態和終態均為空,入棧和出棧的操作序列可表示為僅由i和o組成的序列,稱可以操作的序列為合法序列,否則稱為非法序列。(15分)

1)a和d是合法序列,b和c 是非法序列。

2)設被判定的操作序列已存入一維陣列a中。

int judge(char a)

判斷字元陣列a中的輸入輸出序列是否是合法序列。如是,返回true,否則返回false。

i=0i為下標。

j=k=0j和k分別為i和字母o的的個數。

while(a[i]!=『\0』) //當未到字元陣列尾就作。

switch(a[i])

case『i』: j++; break; //入棧次數增1。

case『o』: k++; if(k>j)

2019湖南省資料結構考試深入

1 連通圖的生成樹包括圖中的全部n個頂點和足以使圖連通的n 1條邊,最小生成樹是邊上權值之和最小的生成樹。故可按權值從大到小對邊進行排序,然後從大到小將邊刪除。每刪除一條當前權值最大的邊後,就去測試圖是否仍連通,若不再連通,則將該邊恢復。若仍連通,繼續向下刪 直到剩n 1條邊為止。void spnt...

2019山西省資料結構分析深入

1 請編寫乙個判別給定二叉樹是否為二叉排序樹的演算法,設二叉樹用llink rlink法儲存。2 設有乙個陣列中存放了乙個無序的關鍵序列k1 k2 kn。現要求將kn放在將元素排序後的正確位置上,試編寫實現該功能的演算法,要求比較關鍵字的次數不超過n。51.借助於快速排序的演算法思想,在一組無序的記...

2023年江西省資料總結要領

1 本題應使用深度優先遍歷,從主調函式進入dfs v 時,開始記數,若退出dfs 前,已訪問完有向圖的全部頂點 設為n個 則有向圖有根,v為根結點。將n個頂點從1到n編號,各呼叫一次dfs 過程,就可以求出全部的根結點。題中有向圖的鄰接表儲存結構 記頂點個數的變數 以及訪問標記陣列等均設計為全域性變...