資料結構作業4複習

2021-10-11 10:10:54 字數 3120 閱讀 9328

定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。

函式介面定義:

list delete

( list l, elementtype mind, elementtype maxd )

;

其中list結構定義如下:

typedef

int position;

typedef

struct lnode *list;

struct lnode

;

l是使用者傳入的乙個線性表,其中elementtype元素可以通過》、==、《進行比較;mindmaxd分別為待刪除元素的值域的下、上界。函式delete應將data中所有值大於mind而且小於maxd的元素刪除,同時保證表中剩餘元素保持順序儲存,並且相對位置不變,最後返回刪除後的表。

裁判測試程式樣例:

#include

#define maxsize 20

typedef

int elementtype;

typedef

int position;

typedef

struct lnode *list;

struct lnode

;list readinput()

;/* 裁判實現,細節不表。元素從下標0開始儲存 */

void

printlist

( list l )

;/* 裁判實現,細節不表 */

list delete

( list l, elementtype mind, elementtype maxd )

;int

main()

/* 你的**將被嵌在這裡 */

輸入樣例:

104-

82121

5933

1004

輸出樣例:

4-8

125910

答案:

//思路:找出順序表中所有處於刪除範圍內的元素,每找到乙個符合條件的元素,刪除該元素,被刪除元素個數加一,否則將該元素放在前面的位置上,重複上述過程,最後表長減去的長度為刪去的元素個數

//注意:刪除範圍要合法

list delete

( list l, elementtype mind, elementtype maxd )

else

} l->last-

=c;//表長減去的長度為刪去的元素個數

return l;

}

給定乙個順序儲存的線性表,請設計乙個演算法查詢該線性表中最長的連續遞增子串行。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子串行為(3,4,6,8)。

輸入格式:

輸入第1行給出正整數n(≤10

​5​​ );第2行給出n個整數,其間以空格分隔。

輸出格式:

在一行中輸出第一次出現的最長連續遞增子串行,數字之間用空格分隔,序列結尾不能有多餘空格。

輸入樣例:

1519

2573

4680

1115

1717

10

輸出樣例:

346

8

答案:

//思路:從第乙個元素開始,逐個遍歷,分別用兩個指標來標記起始下標和終止下標嗎,如果前面的元素比後面的元素小且他們的下標連續則輸出,否則停止重新進行標記

#include

#include

#include

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef

int status;

#define list_init_size 100

#define listincrement 10

typedef

int elemtype;

//假設線性表中的元素均為整型

typedef

struct

sqlist;

//順序表型別定義

status listcreate_sq

(sqlist &l)

;status listfind_sq

(sqlist &l)

;int

main()

if(l.length)

return0;

}status listcreate_sq

(sqlist &l)

l.length=n;

return ok;}}

status listfind_sq

(sqlist &l)

elseif(

*(l.elem+i)

>=

*(l.elem+i+1)

)//遞減

head=last=i+1;

//繼續尋找

len=1;

}}for(i=maxhead;i++i)

printf

("%d",*

(l.elem+i));

}

資料結構作業10複習

2 1 設有乙個10階的對稱矩陣a,採用壓縮儲存方式,以行序為主儲存,a11為第一元素,其儲存位址為1,每個元素佔乙個位址空間,則a85的位址為 2分 a.13 b.33 c.18 d.40 啊這考的線代吧,對稱矩陣轉為陣列儲存,第i行第j列元素位於 i i 1 2 j 注意第一元素下標 2 2 設...

資料結構作業21複習

解析來自某大佬 其中位置0到第乙個為空的位置4的比較次數為5,其餘的位置以此類推。平均不成功查詢次數 5 4 3 2 1 1 1 1 1 1 1 11 21 11 故選d 設數字 在大小為10的雜湊表中根據雜湊函式 h x x 10得到的下標對應為 那麼繼續用雜湊函式 h x x 表長 實施再雜湊並...

資料結構複習

1 二叉遍歷 先序遍歷 先遍歷根結點,遍歷左子樹,遍歷右子樹 中序遍歷 先遍歷左子樹,遍歷根結點,遍歷右子樹 後序遍歷 先遍歷左子樹,遍歷右子樹,遍歷根結點 例項 遍歷a b c d e f 如 a e f b c d 先序遍歷 a b cd ef 中序遍歷 a b c d e f 後序遍歷 abc...