1.0 單鏈表實現(linklist.h):
#pragma once
// 鍊錶
#define ok 1
#define error 0
#define true 1
#define false 0
#define invalid_index -1
// 資料型別
typedef int elemtype;
// 定義乙個鍊錶節點
typedef struct node
linknode;
// 定義乙個煉表頭指標
typedef linknode* linklist;
// 建立乙個鍊錶
linklist createlinklist();
// 插入資料
int insertelem(linklist list, elemtype e);
// 尾插法
int insertelemtail(linklist list, elemtype e);
// 插入資料
int insertnode(linklist list, node * pnode);
// 獲取鍊錶的第 i 個元素
elemtype getelem(linklist list, int index);
// 修改指定位置的元素
void modify(linklist list, int index, elemtype e);
// 刪除乙個資料
void remove(linklist list, elemtype e);
// 刪除乙個資料
void removeelem(linklist list, int index, elemtype* e);
// 列印乙個鍊錶
void printlinklist(linklist list);
// 釋放鍊錶
void freelinklist(linklist list);
2.0 單鏈表實現檔案(linklist.cpp):
#include "linklist.h"
#include #include #include linklist createlinklist()
linklist->data = null;
linklist->nextnode = nullptr;
return linklist;
}int insertelem(linklist list, elemtype e)
int insertelemtail(linklist list, elemtype e)
pnode = pnode->nextnode;
} return ok;
}int insertnode(linklist list, node * pnode)
elemtype getelem(linklist list, int index)
pnode = pnode->nextnode;
} // 沒有找到
return null;
}void modify(linklist list, int index, elemtype e)
pnode = pnode->nextnode; }}
void remove(linklist list, elemtype e)
else
break;
} prenode = pnode;
pnode = pnode->nextnode;
} // 釋放資料
free(curnode);
}void removeelem(linklist list, int index, elemtype* e)
else
// 指向要刪除的資料
*e = curnode->data;
} prenode = pnode;
pnode = pnode->nextnode;
} // 釋放資料
free(curnode);
}void printlinklist(linklist list)
else
pnode = pnode->nextnode;
} printf("\n");
}void freelinklist(linklist list)
}
3.0 測試
#include "linklist.h"
#include #include #include int main(int argc, char **ar**)
c語言 資料結構 單鏈表
將線性表l a0,a1,an 1 中各元素分布在儲存器的不同儲存塊,稱為結點,通過位址或指標建立它們之間的聯絡,所得到的儲存結構為鍊錶結構,表中 ai的結點形式如圖表示 其中結點的data 域存放資料元素 ai,而 next 域是乙個指標,指向 ai的直接後繼 ai 1 所在的結點。單鏈表結構如下 ...
資料結構 單鏈表 C語言
單向鍊錶 鍊錶結點通常包含資料域與指標域,資料域用來儲存相關的使用者的資料,指標域用來指向下乙個結點。訪問單向鍊錶,需要從頭部 head 開始單向順序訪問,訪問終結於指標域 next 為null的結點 其儲存方式不同於以往的陣列,按照非連續位址方式儲存。優點 鍊錶長度可以實現動態增長,不必像陣列一樣...
C語言資料結構 單鏈表
單鏈表在資料結構裡十分常見,是一種常見的線性表,下面介紹其性質並用 實現相關功能 單鏈表以鏈結方式儲存資料 1 鍊錶的具體儲存表示為 用一組任意的儲存單元來存放線性表的結點 這組儲存單元既可以是連續的,也可以是不連續的 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存...