定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。
函式介面定義:
list delete
( list l, elementtype mind, elementtype maxd )
;
其中list結構定義如下:
typedef
int position;
typedef
struct lnode *list;
struct lnode
;
l
是使用者傳入的乙個線性表,其中elementtype
元素可以通過》、==、《進行比較;mind
和maxd
分別為待刪除元素的值域的下、上界。函式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...