順序表的建立 輸出 插入 刪除

2022-08-13 14:51:15 字數 2049 閱讀 3441

1.順序表的建立,一定要記得要分配記憶體,然後就把輸入的數插入進去就可以了。

//

建立順序表

status initlist_sq(sqlist &l,int

n) l.length=n;

l.listsize=list_init_size;

return

ok;}

2.插入元素的時候,要判斷位置是否有效,還要注意記憶體分配的問題,要判斷,如果記憶體不夠他插入新的元素就要重新分配記憶體,然後插入要從最後乙個往下移,倒數第二個移到倒數第乙個.......順序不要弄反了。

//

順序表的插入

status insertlist_sq(sqlist &l,int

i,elemtype e)

elemtype *q=&(l.elem[i-1]);//

定義乙個指標指向需要插入的位置

elemtype *p=&(l.elem[l.length-1]);//

定義乙個指標指向指標的末尾

for(p;p>=q;p--)

*q=e;//

最後吧需要插入的元素的值賦給q

l.length++;//

順序表的長度加一

return

ok;

}

3.刪除的時候還是要先判斷刪除的位置是否有效,然後就找到刪除的位置,讓他下面的元素依次往上賦值

//

順序表的刪除

status deletelist_sq(sqlist &l,int

i) l.length--;//

順序表的長度減一

return

ok;}

4.總的**為

#include #include

//分配記憶體的時候需要使用

#include //

exit需要使用

#define ok 1

#define error 0

#define overflow -1//

判斷是否溢位的時候要使用

#define list_init_size 10

#define listincrement 100typedef

intelemtype;

typedef

intstatus;

typedef

struct

sqlist;

//建立順序表

status initlist_sq(sqlist &l,int

n) l.length=n;

l.listsize=list_init_size;

return

ok;}

//輸出順序表中的元素

status exitlist_sq(sqlist l)

printf("\n

");} //

順序表的插入

status insertlist_sq(sqlist &l,int

i,elemtype e)

elemtype *q=&(l.elem[i-1]);//

定義乙個指標指向需要插入的位置

elemtype *p=&(l.elem[l.length-1]);//

定義乙個指標指向指標的末尾

for(p;p>=q;p--)

*q=e;//

最後吧需要插入的元素的值賦給q

l.length++;//

順序表的長度加一

return

ok;

} //

順序表的刪除

status deletelist_sq(sqlist &l,int

i) l.length--;//

順序表的長度減一

return

ok;}

intmain()

5.實驗結果

順序表的建立,插入,刪除

include include typedef struct seqlist pseqlist struct seqlist 定義線表 建立空順序表 pseqlist chuangjianlist int m 引數m是建立的順序表的大小,即max m else free list printf 線表...

順序表的建立插入與刪除

順序表的建立插入與刪除 坑爹的資料結構課,在加上坑爹的資料結構老師,將來的資料結構之路想必不會順暢吧 好吧,閒話不多說。這該死的資料結構課上都沒怎麼聽,哎我以為我 苦學 一寒假的鍊錶,最開始的資料結構應該無壓力吧,沒想到第二週的作業就讓我懵逼了。我再一看老師給出的部分原始碼,要自己補充完整的。心裡有...

順序表的建立 查詢 插入 刪除

順序表 順序表是線性表的順序儲存結構 順序表就是將線性表中的資料元素按照線性順序儲存到指定位置開始的 一塊連續的儲存空間中。順序表c include using namespace std define maxsize 50 線性表不會超過50個元素 typedef int elemtype typ...