資料結構之鍊錶

2021-09-02 22:16:38 字數 2229 閱讀 5460

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);

//刪除某個位置的資料

bool delete_pos(list* ls, int pos);

//刪除某個特定資料

bool delete_data(list* ls, data data);

//鍊錶逆序

bool reverse(list *ls);

//列印

void display(list *ls);

//銷毀鍊錶

void destroy(list *ls);

#endif //_linklist_h_

linklist.c

#include #include "linklist.h"

#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;//原來的最後乙個結點指向node

return true;

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

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 =tmp->next->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;//原第乙個結點的指標指向null

ls->head = 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()

display(ls);

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

display(ls);

insert_pos(ls, 6, 10086);

display(ls);

delete_pos(ls, 6);

display(ls);

delete_data(ls,10);

display(ls);

reverse(ls);

display(ls);

destroy(ls);

return 0;

}

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...