資料結構 鍊錶 單鏈表 C語言實現

2021-09-19 08:08:39 字數 1600 閱讀 9714

#include#includetypedef int elementtype;

typedef int boolean;

#define true 1;

#define false 0;

typedef struct linklinklist;

//建立乙個節點

//引數可以指定節點的資料

linklist * create(elementtype a)

//初始化鍊錶

//建立頭節點

linklist * init()

//獲取鍊錶最後乙個節點

linklist * getlast(linklist * list)

return f;

}//獲取鍊錶任意位置的節點

//位置從0開始 0為頭節點

linklist * get(linklist * list,int i)

if(i == 0)

while(f->next)

}return null;

}//新增節點到鍊錶尾

boolean add(linklist * list,elementtype i)

//判斷當前鍊錶是否為空

boolean isempty(linklist * list)

//移除指定位置的節點

// 引數 i 指定移除節點的位置 i為 1 移除第乙個節點

boolean remove(linklist * list,elementtype i)

if(i>list->data)

parent = get(list,i-1);

if(parent)

return false;

}//更新指定節點的值

boolean update(linklist * list,int data,int i)

return false;

}//指定位置插入節點

boolean insert(linklist * list,linklist * element,int i)

ele = parent->next;

parent->next = element;

element->next = ele;

list->data++;

return true;

}int main()

//在鍊錶尾部新增乙個節點

add(header,70);

//在第乙個位置上插入乙個節點,該節點的資料域值為12

insert(header,create(12),1);

//更新鍊錶第二個節點的資料域的值為77

update(header,77,2);

//新增節點後檢視鍊錶是否為空

printf("當前鍊錶是否為空:%d\n\n\n",isempty(header));

//鍊錶對頭結點的資料域進行維護,用來表示當前鍊錶的節點個數

printf("當前鍊錶的節點個數:%d\n",header->data);

//遍歷鍊錶的每乙個節點

while(f->next)

return 0;

}

C語言實現資料結構 順序表,單鏈表

線性表分為 順序儲存結構和連儲存結構 順序儲存結構的優點 1.空間利用率高,幾乎不需要額外的空間開銷.2.資料的邏輯結構和物理結構完全一致.3.結點位址計算的時間和線性表的規模大小無關.4.可以用一維陣列實現儲存.但是有兩個缺點 1.順序儲存結構的儲存空間是靜態分配,必須有足夠大的連續儲存空間,如果...

資料結構 線性表 單鏈表C語言實現

單鏈表的練習 include stdlib.h include stdio.h void printlinklist struct node h 單鏈表資料結構 typedef struct node lnode,linklist 建立鍊錶 帶頭結點 linklist createlinklist ...

資料結構 單鏈表c語言實現

list.h如下 ifndef list h define list h typedef struct node node,list void initlist list list bool insert head list list,int val bool insert tail list li...