1.線性表
線性表
1.1 順序表(順序存儲(chǔ))
順序表總結(jié)
- 靜態(tài)分配
#define Size 10
typedef struct{
ElemType data[Size]; //用靜態(tài)的數(shù)組存放數(shù)據(jù)
int length;
}SqList
- 動(dòng)態(tài)分配
#define Size 10
typedef struct{
ElemType *data; //動(dòng)態(tài)分配數(shù)組的指針
int MaxSize;//順序表的最大容量
int length;//順序表當(dāng)前長(zhǎng)度
}SqList
//1.C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)分配——malloc,free
L.data = (ElemType*)malloc(sizeof(ElemType) * Size);
?? malloc()前需要加具體指針的強(qiáng)制轉(zhuǎn)化帜篇,例如:(int *)(int*)malloc(sizeof(int) * Size)裕膀;
//2.C++實(shí)現(xiàn)動(dòng)態(tài)分配——new,delete
代碼實(shí)現(xiàn)自行查找
1.2 單鏈表
- 單鏈表定義
struct LNode{
ElemType data;
struct LNode *next;
}秀又;
//typedef的使用
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode , *LinkList;
等價(jià)于下面
struct LNode{
ElemType data;
struct LNode *next;
};
typedef struct LNode LNode;
typedef struct LNode *LinkList;
- 不帶頭節(jié)點(diǎn)的單鏈表插入操作
不帶頭節(jié)點(diǎn)的插入
- 帶頭節(jié)點(diǎn)的單鏈表插入操作
帶頭節(jié)點(diǎn)的插入
-
單鏈表創(chuàng)建——頭插法
能實(shí)現(xiàn)鏈表逆序頭插法 單鏈表創(chuàng)建——尾插法
尾插法
1.3 雙鏈表
- 定義
struct DNode{
ElemType data;
struct DNode *prior , *next; //前驅(qū)和后繼指針
};