順序線性表 資料結構 1

2021-08-01 03:31:33 字數 1793 閱讀 3421

線性表的一種,是與記憶體結構對應的,故稱之為線性順序表。//資料結構第二周目,整理下以前的** 。對應書上的p19-p26。

typedef struct sqlist;

//順序表 2017-04-23

// c2-1.h 線性表的動態分配順序儲存結構。在教科書第22頁

#define list_init_size 30 // 線性表儲存空間的初始分配量

#define list_increment 2 // 線性表儲存空間的分配增量

typedef struct sqlist;

status initlist_sq(sqlist &l)

//當前的資料長度

l.length = 0;

//當前分配的空間長度

l.listsize = list_init_size;

return ok;

}status listinsert_sq(sqlist &l, int i, elemtype e)

//插入的位置是邊界的情況 這種情況不用把數字往後移動

if (i == l.length)

//判斷i位置的合法性[0,l.length]

if (!(i >= 0 && i <= l.length - 1))

//對元素i位置進行插入,將元素往後移動

for (int j = l.length; j >= i; j--)

//插入元素 長度加1

l.elem[i] = e;

l.length++;

return ok;

}status listdelete_sq(sqlist &l, int i, elemtype &e)

e = l.elem[i];

for (int j = i; j < l.length - i - 1; j++)

l.length--;

return ok;

}void mergelist_sq(sqlist la, sqlist lb, sqlist &lc)

else

}//迴圈完後將剩下的都數都放進lc中

while (indexa <= (la.length - 1))

while (indexb <= (lb.length - 1)) }

void printlist(sqlist l)

printf("\n當前的list的長度%d\n", l.length);

}

sqlist list;

initlist_sq(list);

listinsert_sq(list, 0, 1);

printlist(list);

listinsert_sq(list, 0, 2);

printlist(list);

listinsert_sq(list, 0, 3);

listinsert_sq(list, 0, 4);

printlist(list);

int e;

listdelete_sq(list,2, e);

printlist(list);

輸出:

1:

當前的list的長度1

2:1:

當前的list的長度2

4:3:2:1:

當前的list的長度4

4:3:2:

當前的list的長度3

請按任意鍵繼續. . .

資料結構(1) 線性表(順序儲存結構)

概念 指的是用一段位址連續的儲存單元依次儲存線性表的資料元素 用一維陣列來實現順序儲存結構 重要屬性 儲存空間的起始位置 線性表的最大儲存量 線性表的當前長度 優點 無須為表示表中元素之間的邏輯關係而增加額外的儲存空間 可以快速的檢視任意位置的元素。缺點 插入和刪除操作需要移動大量元素 當線性表長度...

資料結構 順序線性表

順序線性表標頭檔案 ifndef vzhangseqlist define vzhangseqlisttypedef void seqlist typedef void seqlistnode 建立線性表 declspec dllexport 如果在動態庫中定義標頭檔案 這句話不可以缺少 不然會報錯...

資料結構 線性表 順序表

豐富了前邊的功能,更加完善。include include define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 using namespace std const int overflow 2 ty...