資料結構 鍊錶

2021-09-02 22:22:52 字數 2634 閱讀 8966

linklist.c

#include "linklist.h"

#include #include list *createlist()

ls->head->next = null; // 空鍊錶

return ls;

}bool insert_head(list *ls, data data)

bool insert_last(list *ls, data data)

tmp->next = node;

return true;

}bool insert_pos(list *ls, int pos, data data) }

node *node = (node *)malloc(sizeof(node)/sizeof(char));

if (null == node)

return error;

node->data = data;

node->next = tmp->next;

tmp->next = node;

return true;

}bool delete_pos(list *ls, int pos) }

node *p = tmp->next;

tmp->next = p->next;

free(p);

return true;

}bool delete_data(list *ls, data data)

tmp = tmp->next; }

return false;

}bool reverse(list *ls)

ls->head->next->next = null;

ls->head->next = pre;

return true;

}void display(list *ls)

printf ("\n"); }

void destroy(list *ls)

free(ls->head);

free(ls);

}

main.c

#include #include "linklist.h"

int main()

printf ("建立成功\n");

int i;

for (i = 0; i < 10; i++)

display(ls);

insert_pos(ls, 1, 123);

display(ls);

insert_pos(ls, 12, 456);

display(ls);

insert_pos(ls, 3, 100);

display(ls);

insert_pos(ls, 30, 100);

display(ls);

printf ("------------------\n");

delete_pos(ls, 1);

display(ls);

delete_pos(ls, 12);

display(ls);

delete_pos(ls, 2);

display(ls);

delete_pos(ls, 11);

display(ls);

delete_data(ls, 6);

display(ls);

reverse(ls);

display(ls);

return 0;

}

linklist.h

#ifndef _linklist_h_

#define _linklist_h_

typedef enum bool;

typedef int data;

typedef struct _node

node;

typedef struct _list

list;

// 建立鍊錶

list *createlist();

// 插入:頭插

bool insert_head(list *ls, data data);

// 插入:尾插

bool insert_last(list *ls, data data);

// 插入:在特定位置插入的資料

// pos:第 pos 個結點位置

bool insert_pos(list *ls, int pos, data data);

// 刪除特定位置的資料

// pos:第 pos 個結點位置

bool delete_pos(list *ls, int pos);

// 根據值刪除資料

bool delete_data(list *ls, data data);

// 鍊錶逆序

bool reverse(list *ls);

void destroy(list *ls);

void display(list *ls);

#endif // _linklist_h_

資料結構 鍊錶

鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...

資料結構 鍊錶

鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...

資料結構 鍊錶

一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...