用變數last記錄當前最後乙個元素在陣列中的位置,即last起乙個指標的作用
//當表空時last = -1
typedef
struct
seqlist;
//順序表的初始化
seqlist *
init_seqlist()
//插入運算
//在表的第i個位置插入乙個值為x的元素
*## 插入時需要檢查的情況
1. 表是否已滿
2. 插入的位置是否正確
3. 正確插入*
intinsert_seqlist
(seqlist *l,
int i,datatype x)
//檢查插入位置是否正確,表中的最後乙個位置是l->last+1,表後面乙個元素是l->last + 2
if(i <
1|| i > l-
>last +2)
//正確插入,第i個位置即為下標為i-1的陣列元素,即將下表從i-1往後移動
for(j = l-
>last; j >= i-
1;j++
)//將元素x插入進去
l->data[i-1]
= x;
//更變last
l->last ++
;return1;
}//刪除運算
*## 刪除時需要檢查的情況
1. 刪除的位置是否正確
2. 正確刪除*
intdelete_seqlist
(seqlist l,
int i)
//從下標為i的元素依次向前移動
for(j = i;j <= l-
>last;j++
) l-
>last--
;return1;
}//按值查詢運算
intlocation_seqlist
(seqlist *l,datatype x)
//查詢失敗,返回的是-1
if(i >l-
>last)
return-1
;//查詢成功,返回的是儲存位置
}
看博主寫的比較清晰,就引用了一下嘻嘻嘻
快速排序演算法here
快速排序演算法每次將比基準大的數放在基準的一邊,將比基準小的數放在基準的另一邊,每次設定基準i和基準j
void
part
(seqlist * l)
if(i < j)
while
(data[i]
<= x && i < j)
if(i < j)
}}
資料結構之線性結構
資料結構學習虛函式,幾個知識點 1 抽象類函式本身不能直接例項化,需要其子類例項化虛函式,才能例項化。繼承抽象類的子類必須重寫虛函式,具體函式可實現,也可不實現。2 const修飾符,若修飾函式,則函式引數不能被改變。若修飾成員變數,則成員變數在使用過程中不被改變。修飾傳入引數,則避免引數被改變。3...
資料結構之線性結構和非線性結構
線性結構作為最常用的資料結構,其特點是資料元素之間存在一對一的線性關係 線性結構有兩種不同的儲存結構,即順序儲存結構和鏈式儲存結構。順序儲存的線性表稱為順序表,順序表中的儲存元素是連續的 鏈式儲存的線性表稱為鍊錶,鍊錶中的儲存元素不一定是連續的,元素節點中存放資料元素以及相鄰元素的位址資訊 常見的線...
資料結構實驗之線性結構
輸入格式說明 以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出格式說明 以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。樣例輸入與輸出 序號輸入輸出1 3 4 5 2 6 1 2 0 12 3 10 1 6 ...