線性表 鏈式儲存結構的實現

2021-08-20 09:45:54 字數 1410 閱讀 6949

嚴版資料結構第28頁定義的單鏈表儲存結構:

typedef struct lnode lnode,*linkedlist;

實現書中演算法2.8——2.11:

#include#include#include#define elemtype int

#define status int

#define error 0

#define ok 1

using namespace std;

typedef struct lnode lnode,*linkedlist;

//演算法2.8 查詢結點

status getelem_l(linkedlist l, int i, elemtype &e)

if (!p || j > i)

return error;

e = p->data;

return ok;

}//演算法2.9 新增結點

status listinsert_l(linkedlist &l, int i, elemtype e)

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

return error;

lnode *s = (linkedlist)malloc(sizeof(lnode));

s->data = e;

s->next = p->next;

p->next = s;

return ok;

}//演算法2.10 刪除結點

status listdelete_l(linkedlist &l, int i, elemtype &e)

while (jnext) || j > i - 1)

return error;

lnode *q = p->next;

p->next = q->next;

e = q->data;

free(q);

return ok;

}//逆位序建立線性表,演算法2.11

void createlist_l(linkedlist &l, int n)

}void printlist_l(linkedlist &l)

cout << endl;

}void main()

else

int deletenumber,delete_elem=0;

cout << "刪除的元素位置:";

cin >> deletenumber;

status delete = listdelete_l(l, deletenumber, delete_elem);

if (delete)

else

system("pause");

}

線性表鏈式儲存結構

include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...

線性表鏈式儲存結構

為了表示每個資料元素ai與其直接後繼資料元素ai 1之間的邏輯關係,對資料元素ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 我們把儲存資料元素資訊的域稱為資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱做指標或鏈。這兩部分資訊組成資料元素a...

線性表 鏈式儲存結構

1 線性表的鏈式儲存結構 每個元素多用乙個位置來存放指向下乙個元素位置的指標,依次類推,可以找到所有的元素。鏈式儲存中,除了要儲存資料本身外,還要儲存它的後繼元素的儲存位址 指標 資料域 儲存資料資訊的域 指標域 儲存直接後繼位置的域。這兩部分資訊組成資料元素稱之為儲存映像,節點node。鍊錶中每個...