資料結構 王道課後題 線性表(1)

2021-09-24 20:49:25 字數 1304 閱讀 4125

1. 從順序表中是刪除最小元素,並返回該元素的值空出位置由最後一位填充。

bool delete_min(sqlist &l, elemtype &value)

value=l.data[0];

int pos=0;

for(int i=0;i2. 將順序表l所有元素逆置,並要求演算法空間複雜度為o(1)。

//由於限制了空間複雜度,所以不能建立新的線性表用來逆向儲存

//直接設定起點和終點兩個標誌位,在原陣列的基礎上交換

void reverse(sqlist &l)

/*只用乙個變數

for(i=0;i3. 對長度為n的順序表l,編寫乙個時間複雜度為o(n),空間複雜度為o(1)的演算法,該演算法刪除線性表中所有的值為x的資料元素。

bool delete_x(sqlist &l, elemtype x)

int i,j;

//使用i記錄大於t的第乙個數的位置,

for(i;i5. 從順序表中刪除給定的s到t之間的所有元素

//與刪除所有的x類似,唯一不同是判斷條件

bool del_st_h(sqlist &l,elemtype s,elemtype t)

while(is)

else

i++;

}l.length -=k;

return true;

}

6. 從有序表中刪除所有重複的元素

//審好題,是有序表,因此重複的都堆在一起了

//如果該表是無序的,就應使用雜湊表

bool delete_same(sqlist &l)

for(i=0,j=1;j7. 將兩個有序順序表合併為乙個新的有序順序表

bool merge(sqlist &a,sqlist &b,sqlist &c)

//abc三個順序表各自使用自己的變數

int i=0,j=0,k=0;

while(i8. 將陣列a[m+n] (a1,,,am,b1...bn)轉換為(b1...bn,a1...am)

//三次逆置即可,先整體逆置,然後將b部分逆置,最後a部分逆置即可

//傳引數注意不要出錯即可

typedef int datatype;

void reverse(datatype a ,int left,int right,int arraysize)

else

else }}

}

王道資料結構線性表課後習題

1.1.從順序表中刪除具有最小值的元素 假設唯一 並由函式返回被刪除的元素的值,空出的位置由最後乙個元素填補,若順序表為空則顯示出錯資訊並退出執行 bool del min sqlist l,elemtype value l.data pos l.data l.length 1 空出的位置由最後乙個...

王道資料結構 線性表的鏈式表示應用題1

設計乙個遞迴演算法,刪除不帶頭結點的單鏈表 l 的所有值 為 x的結點 終止條件 若l為空表,則返回。遞迴主體 若 l data x,刪除此結點,繼續遞迴下乙個結點。若 l data x 遞迴下乙個結點。演算法需要解除乙個遞迴工作棧,深度為 o n 時間複雜度為 o n void del x lin...

資料結構線性表1

include include include struct arr 定義了乙個資料型別,該資料型別的名字是struct arr void init arr struct arr parr,int length bool insert arr struct arr parr,int pos,int ...