2023年貴州省基礎資料摘要

2022-10-06 07:12:04 字數 1116 閱讀 8784

1、#define maxsize 棧空間容量

void inouts(int s[maxsize])

//s是元素為整數的棧,本演算法進行入棧和退棧操作。

else s[++top]=x; //x入棧。

else //讀入的整數等於-1時退棧。

else printf(「出棧元素是%d\n」,s[top--]);}

}}//演算法結

2、(1)p->rchild (2)p->lchild (3)p->lchild (4)addq(q,p->lchild) (5)addq(q,p->rchild)

25. (1)t->rchild!=null (2)t->rchild!=null (3)n0++ (4)count(t->lchild) (5)count(t->rchild)

26. .(1)top++ (2) stack[top]=p->rchild (3)top++ (4)stack[top]=p->lchild

27. (1)*ppos // 根結點(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+1

3、矩陣中元素按行和按列都已排序,要求查詢時間複雜度為o(m+n),因此不能採用常規的

二層迴圈的查詢。可以先從右上角(i=a,j=d)元素與x比較,只有三種情況:一是a[i,j]>x,

這情況下向j 小的方向繼續查詢;二是a[i,j]查詢成功。否則,若下標已超出範圍,則查詢失敗。

void search(datatype a[ ][ ], int a,b,c,d, datatype x)

//n*m矩陣a,行下標從a到b,列下標從c到d,本演算法查詢x是否在矩陣a中.

else if (a[i][j]>x) j--; else i++;

if(flag) printf(「a[%d][%d]=%d」,i,j,x假定x為整型.

else printf(「矩陣a中無%d 元素」,x);

}演算法search結束。

[演算法討論]演算法中查詢x的路線從右上角開始,向下(當x>a[i,j])或向左(當x向下最多是m,向左最多是n。最佳情況是在右上角比較一次成功,最差是在左下角(a[b,c]),

比較m+n次,故演算法最差時間複雜度是o(m+n)。

2023年貴州省資料總結基礎

1 在有向圖g中,如果r到g中的每個結點都有路徑可達,則稱結點r為g的根結點。編寫乙個演算法完成下列功能 1 建立有向圖g的鄰接表儲存結構 2 判斷有向圖g是否有根,若有,則列印出所有根結點的值。2 氣泡排序演算法是把大的元素向上移 氣泡的上浮 也可以把小的元素向下移 氣泡的下沉 請給出上浮和下沉過...

2023年貴州省資料總結要領

1 設一棵二叉樹的結點結構為 llink,info,rlink root為指向該二叉樹根結點的指標,p和q分別為指向該二叉樹中任意兩個結點的指標,試編寫一演算法ancestor root,p,q,r 該演算法找到p和q的最近共同祖先結點r。2 後序遍歷最後訪問根結點,即在遞迴演算法中,根是壓在棧底的...

2023年貴州省資料總結章程

1 假設以鄰接矩陣作為圖的儲存結構,編寫演算法判別在給定的有向圖中是否存在乙個簡單有向迴路,若存在,則以頂點序列的方式輸出該迴路 找到一條即可 注 圖中不存在頂點到自己的弧 有向圖判斷迴路要比無向圖複雜。利用深度優先遍歷,將頂點分成三類 未訪問 已訪問但其鄰接點未訪問完 已訪問且其鄰接點已訪問完。下...