【正文】
70+(1223) = 59 。 合并有序順序表的算法如下描述。 上述算法用C語言描述如下(其中ET為數(shù)據(jù)元素的類型):void mgsl ( int n , ET a[ ] , int m , ET b[ ] , ET c[ ] ) { int i , j , k , t 。 while ( ( in ) amp。 } else { c [ k ] = b [ j ] 。 t m 。 t n 。 }4 試寫出計算循環(huán)鏈表長度的算法。 int lencst ( struct node * head ) { int n 。 while ( p != head ) { n = n+1 。 設(shè)其頭指針為head ,數(shù)據(jù)元素類型為ET。 void invlst ( struct node * head ) { struct node *p , *q 。 p = pnext 。 }4 設(shè)有兩個有序線性單鏈表,頭指針分別為AH與BH。算法用C語言描述如下(其中ET為數(shù)據(jù)元素類型): struct node /* 定義線性單鏈表結(jié)點類型 */ { ET d 。 i = ah 。 while ( ( i != NULL ) amp。 i = inext 。 else knext = p 。 i = inext 。 } else while ( j != NULL ) { p = ( struct node * ) malloc ( sizeof ( struct node ) ) 。 else knext = p 。 } 4已給一個帶表頭結(jié)點的單鏈表head,它含有重復(fù)結(jié)點,即它含有數(shù)據(jù)域的值相同的結(jié)點,試用C語言(或類C語言)寫出以下算法函數(shù):(1)刪除單鏈表中重復(fù)的多余結(jié)點。while (r != NULL ) { int m = rdata 。 if ( pdata = = m ){ qnext = pnext 。 p = headnext 。 } 4設(shè)樹T的度為4,其中度為1,2,3,4的結(jié)點個數(shù)分別為4,2,1,1?,F(xiàn)要求該n個人的出列順序。n為元素構(gòu)成一個循環(huán)隊列,并用一個數(shù)組A(1:n)存放該隊列中各元素的直接后繼,其中A(i)表示表示整數(shù)i的下一個整數(shù)。即當有元素出列后,某些整數(shù)i的下一個數(shù)就不一定是i + 1了。 for ( i = 0 。 k = k1 。 i n 。 a[ t ] = a[ k ] 。 } 完美WORD格式編輯 。 } free ( a ) 。 k = a[ k ] 。 j n 。 i + + ) a[ i ] = i+1 。 include “ “void jsphu ( int n , int m , int k , int b [ ] ) { int i , j , t , *a 。 i = 1, 2, 3, ……., n1 A(n) = 1。試編寫求解約瑟夫問題的算法。n。 p = pnext 。 p = qnext 。while ( p != NULL ) { q = p。(1) void deletenode ( NODE * head ){ NODE *r, *p, *q。 } if ( k != NULL ) knext = NULL 。