線性表順序儲存總結

2021-10-12 00:09:50 字數 2088 閱讀 2642

1.但凡函式含 元素位置i,一定要考慮i是否在正確的範圍內

需要考慮的只有三種情況:①插入某個元素②刪除某個元素③返回指定位置的元素數值

2.銷毀和清空鍊錶無需返回值

3.但凡需要判斷是否成功 都需要用status作為返回值型別

4.需要修改線性表或主函式的的某個資料時,才用址傳遞,其餘的都用值傳遞

需要用址傳遞的只有三種情況:①插入某個元素②刪除某個元素③清空鍊錶④初始化鍊錶⑤銷毀鍊錶⑥返回指定位置的元素數值

//typedef基本資料型別

typedef

int/

char

/float

/double elemtype;

//elemtype為int/char/float/double型別

typedef

char

* elemtype;

//elemtype為 char *型別//可以放字串

//typedef構造型別

//①陣列存放多個資料型別相同的資料

typedef

int/

char

/float

/double elemtype[5]

;//elemtype為int[5] / char[5] / float [5]/ double[5]型別

//②結構體存放多個資料型別不同的資料

typedef

struct elemtype

elemtype;

//elemtype為struct elemtype型別

//③函式:把資料輸入 處理後 輸出其他資料

typedef

void

(*elemtype)

(int);

//順序表建立:

//陣列記憶體靜態分配

#define maxsize 100

typedef

struct sqlist

sqlist;

//陣列記憶體動態分配

typedef

struct sqlist

sqlist;

//初始化順序表:

#define maxsize 100

#define ok 1

#define overflow -2

typedef

int status;

status initlist

(sqlist * lp)

//銷毀順序表

void

destorylist

(sqlist * lp)

//清空線性表

void

clearlist

(sqlist * lp)

//判斷線性表是否為空

intisemptylist

(sqlist l)

//求線性表的長度

intgetlength

(sqlist l)

//將線性表中第i個位置返回給e

#define ok 1

#define error 0

status getdata

(sqlist l,

int i,

int* e)

//查詢指定元素的序號

intlocatelist

(sqlist l,

int a)

return error;

}//插入新元素:在第i個位置插入元素e

#define truth 1

#define error 0

typedef

int status;

status listinsert

(sqlist * lp,

int i,

int e)

lp->data[i -1]

= e;

lp->length++

;return ok;

}//刪除某元素:刪除第i個位置的元素

status listdelete

(sqlist * lp,

int i)

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。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...

線性表順序儲存

我們來談一下線性表的順序儲存結構 圖示 1 存在唯一的開始結點 2 存在唯一的終端結點 3 除了終端結點和開始結點,其間的每乙個結點都有乙個直接前驅和乙個直接後繼 順序儲存 圖例 c 實現 include linklisthead.h void menu int main break case 2 ...