資料結構 順序表演算法及完整操作

2021-10-06 12:59:14 字數 2714 閱讀 9867

#include

#include

#include

#include

#include

using namespace std;

#define list_init_size 100

//線性表儲存空間初始分配量

#define listincrement 10

//線性表儲存空間的分配增量

#define ok 1

#define error 0

#define true 1

#define false 0

#define overflow -2

#define max_size 100

#define list int

typedef

int status;

typedef

int elemtype;

typedef

struct

sqlist;

/****************基本操作函式*****************/

//1.線性表l的初始化

status initlist_sq

(sqlist &l)

//構建乙個空的線性表

//2.銷毀線性表l

void

destroy

(sqlist &l)

//3.清空線性表l

void

clearlist

(sqlist &l)

//4.求線性表的長度

intgetlength

(sqlist l)

//5.判斷線性表是否為空

intisempty

(sqlist l)

//6.順序表的取值,根據位置i獲取內容

intgetelem

(sqlist l,

int i, elemtype &e)

//7.順序表的查詢

//演算法思想:

// 2.從表的一端開始,逐個進行比較

intlocateelem

(sqlist l, elemtype e)

return error;

}//8.順序表的插入

//演算法思想:

// 1.判斷插入位置i是否合法

// 2.判斷順序表的儲存空間是否已滿,已滿增加儲存空間

// 3.將第n至第i位的元素一次向後移動乙個位置,空出第i個位置

// 4.將要插入的新元素放入e放入第i個位置

// 5.表長加1,插入成功返回ok

status listinsert_sq

(sqlist &l ,

int i, elemtype e)

q =&(l.elem[i-1]

);//q為插入位置的位址

for(p =

&l.elem[l.length-1]

; p >= q;

--p)

*q = e;

//全部移動完後插入e

++l.length;

//表長加1

return ok;

}//9.順序表的刪除

//演算法思想:

// 1.判斷刪除位置i是否合法

// 2.將欲刪除的元素儲存在e中

// 3.將第i+1至n位元素依次向前移動乙個位置

// 4.表長減1,刪除成功返回ok

status listdelete_sq

(sqlist &l,

int i, elemtype &e)

--l.length;

return ok;

}//10.建立順序表函式 初始化前n個資料

intcreatlist

(sqlist &l,

int n)

return ok;

}//********************************功能函式*****************************************//

//輸出功能函式 按位置從小到大輸出順序表所有元素

void

printlist

(sqlist l)

printf

("\n");

}//建立順序表函式

void

create

(sqlist &l)

else

printf

("輸入長度非法!\n");

}//插入功能函式 呼叫insertlist完成順序表元素插入 呼叫printlist函式顯示插入成功後的結果

void

insert

(sqlist &l)

else

}//刪除功能函式 呼叫listdelete函式完成順序表的刪除 呼叫printlist函式顯示插入成功後的結果

void

delete

(sqlist &l)

else

}//查詢功能函式 呼叫locateelem查詢元素

void

search

(sqlist l)

else

printf

("未找到該元素!\n");

}//選單

void

menu()

intmain()

}return0;

}

資料結構及演算法 順序表

順序表是一種簡單的線性結構,邏輯上相鄰的資料在計算機內的儲存位置也是相鄰的,可以快速定位第幾個元素,中間不允許有空值,插入 刪除時需要移動大量元素。順序表的三個要素 結構體定義 define max size 100 struct sqlist define max size 100 typedef...

資料結構順序表及操作集

資料結構與演算法實驗報告姓名 孫瑞霜 一 實驗目的 1 複習線性表的邏輯結構 儲存結構及基本操作 2 掌握建立空的順序表 3.1 往順序表中輸入元素 輸出順序表中的元素 往順序表中插入元素 從順序表中刪除元素等操作的實現。二 實驗要求 1 認真閱讀和掌握教材上和本實驗相關的內容和演算法。2 上機將相...

資料結構 單鏈表演算法及完整操作

include include include include include define status int define elemtype int using namespace std typedef struct lnode lnode,linklist 基本操作函式 1.初始化鍊錶 構...