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 ...