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 ...