線性表 順序儲存習題P18 1 5 1 9

2021-09-26 05:45:21 字數 1258 閱讀 5497

1.5.從順序表中刪除其值在給定值s與t之間,(包含s和t,要求s l.length || s >= t) return false;

for (i = 0;i < l.length;i++)

l.length -= k;

return true;

}1.6.從有序順序表中刪除所有其值重複的元素,使表中所有元素的值均不同

//為有序順序表,所以重複的數字必在相鄰位置上

bool delete_same(sqlist &l)

1.7.將兩個有序順序表合併成乙個新的有序順序表,並由函式返回結果順序表

//按順序不斷取下順序表表頭較小的結點存入新的順序表中,那個表還有剩餘,將剩下的部分加入到新錶後面

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

while (i < a.length) //剩乙個沒有比較完的順序表

c.data[k++] = a.data[i++];

while (j < b.length)

c.data[k++] = b.data[j++];

c.length = k + 1;

return true;

}

1.8.已知在一維陣列a[m + n]中依次有兩個線性表(a1, a2, a3, ..., am),(b1, b2, b3, ..., bn),編寫乙個函式,將兩個順序表的位置互換,即將(b1, b2, b3, ..., bn)放到(a1, a2, a3, ..., am)的前面

//思路:先將陣列整體原地置換,即m與n置換,在對m和n進行內部置換

typedef int datatype;

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

void exchange(datatype a, int m, int n, int arraysize)

1.9線性表(a1, a2..an)遞增有序請在最少時間在表中查詢數值為x的元素,若找到,將其與後繼元素交換,若找不到將其插入表中並使表中元素有序

//折半查詢

void searchexchangeinsert(elemtype a, elemtype x)

if (a[mid] == x && mid != n - 1)

if (low > high)

}

線性表 順序儲存習題P18 1 1 1 4

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

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...

線性表順序儲存

時間複雜度效率 o 1 o logn o n o nlogn o n 2 o n 3 o 2 n o n o n n 線性表順序儲存 線性表 順序儲存 include include define maxsize 1024 typedef int elementtype typedef struct...