資料結構 線性 鏈式List簡單實現

2021-10-03 21:00:17 字數 1957 閱讀 1422

#include #include #define error 0

#define ok 1

#define overflow -1

#define true 1

#define false 0

#define init_size 5

typedef int elemtype;

typedef int status;

typedef struct list list;

void initlist(list &l)

//獲取元素

elemtype getelem(list &l, int index)

status extendcapacity(list &l)

l.elem = newelem;

l.capacity = l.capacity * 2 + 1;

return ok;

}status addelem(list &l, elemtype e) ;

status insertelem(list &l, elemtype e, int index)

l.elem[index] = e;

l.length++;

return ok;

}status deleteelem(list &l, int index) lnode, *linklist;

void createlist(linklist &l)

//初始化並輸入n個元素

void createlist(linklist &l,int n)

//正序 後插法

linklist p = l;

for(int i=0;i>new_node->data;

new_node->next = null;//init

p->next = new_node;

p = p->next;//point tail elem

}}//取l中第i個元素返回

elemtype getelem(linklist l, int i)

if (!p || j > i-1)

return p->next->data;

}//在地i個位置插入節點

void insert(linklist &l, int i, elemtype e)

if (!p || j > i)

lnode *new_node = new lnode;

new_node->data = e;

new_node->next = null;

//p是最後乙個節點

if(!p->next)

new_node->next = p->next;

p->next = new_node;

}//刪除l中第i個元素

void del(linklist &l, int i)

if (!(p->next) || j > i - 1)

lnode *del_node = p->next;

//如果del_node後不存在節點

if (!del_node->next)

//連線鍊錶

p->next = p->next->next;

delete (del_node);

}void printlist(linklist l)

}//test

int main() {

linklist l;

createlist(l,3);//1 2 3

insert(l,2,222);

printlist(l);

del(l,2);

cout<<"-------------"《線性表使用陣列實現, 特點是讀取快, 插入刪除慢;

鍊錶使用乙個個node節點, 使用指標關聯node之間的關係, 特點是讀取慢, 插入刪除快;

極客技術空間:

資料結構 線性表鏈式儲存結構

鏈式儲存 用一組任意的儲存單元儲存線性表中的資料元素。用這種方法儲存的線性表簡稱線性鍊錶。儲存鍊錶中結點的一組任意的儲存單元可以是連續的,也可以是不連續的,甚至是零散分布在記憶體中的任意位置上的。鍊錶中結點的邏輯順序和物理順序不一定相同。即不要求邏輯上相鄰的元素在物理位置上也相鄰 為了正確表示結點間...

資料結構 線性表(鏈式儲存結構)

用一組任意的儲存單元儲存線性表的資料結構,這組儲存單元可以是連續的,也可以是不連續的。對資料結構ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其後繼的資訊 即直接後繼的儲存位置 資料域 儲存資料元素資訊的域。指標域 儲存直接後繼位置的域。資料域 指標域 結點 n個結點鏈結成乙個鍊錶,即為線性表...

資料結構 線性表鏈式儲存

對於線性鍊錶,有兩種表示方法,一種是包含頭節點的情況,如下圖 一種是不包含頭節點的情況,如下圖 本文中對線性鍊錶的表示,利用的是帶頭節點的定義方式。使用c 實現了線性鍊錶建立,初始化,刪除,插入,清空,遍歷,有序鍊錶合併等操作。煉表頭 頭指標 頭結點 煉表頭 指的是線性表第乙個元素所在結點 頭指標 ...