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