目錄
鍊錶的每乙個結點中只包含乙個指標域
優點 : 儲存空間利用高效
舉例來說:
typedef struct studentstudent;
與之相反的是多鍊錶
typedef struct studentstudent;
1.定義資料元素
//定義資料元素
typedef struct studentelementtype;
2.定義順序表結構
typedef struct seqlist;
3.定義鍊錶的結點(包括資料域和指標域)
typedef struct node node;
4.設定頭結點
我們在定義鍊錶時,習慣性的會定義頭結點,以便統一鍊錶結點的插入和刪除操作
typedef struct linklist linklist;
如果鍊錶有頭結點,next就指向頭結點,沒有就指向第乙個結點
鍊錶的長度初始值為0
在第i個結點後插入資料元素
1.建立空節點並為資料域賦值
//建立空節點並為資料賦值
node* node = (node*)malloc(sizeof(node));
node -> date = element;
node -> next = null;
2.通過迴圈找到要插入的結點
for (int i = 1; currnode && i < pos - 1; i++)
3.將結點插入並對接前面的結點
if (currnode)
void initlinklist(linklist* linklist, elementtype* datearrar, int length)
}void printlinklist(linklist* linklist)
for (int i = 0; i < linklist->length; i++)
}int islinklistempty(linklist* linklist)
if (pos == 1)
return element;
}node* prenode; //字首結點
node = linklist->next;
for (int i = 1; node && i < pos; i++)
if (node)
return element;
elementtype deletelinklistelement(linklist* linklist, int pos) }
node* prenode; //字首結點
node = linklist->next;
for (int i = 1; node && i < pos; i++)
if (node)
return element;
}void cleatlinklist(linklist* linklist)
linklist->next = null;
linklist->length = 0;
}
資料結構與演算法之單鏈表
include include define maxsize 100 typedef int elemtype typedef struct lnode linknode void createlistf linknode l,elemtype a,int n 頭插法建立單鏈表 void initl...
資料結構與演算法之單鏈表
鍊錶的實現 實現單鏈表的 構建 資料新增 資料刪除 返回元素所在位置 資料查詢 返回元素所在的位置 的演算法設計 鍊錶的實現 實現單鏈表的 構建 資料新增 資料刪除 返回元素所在位置 資料查詢 返回元素所在的位置 的演算法設計 include include using namespace std ...
c語言資料結構之單鏈表
本教程會在以後持續公布c語言資料結構的實現文章,一來重溫一下基礎知識,二來為正在學習此部分內容的同學提供參考和思路,教程內容均來自於書籍 分享和本人思考,側重 編寫和實現,詳細的理論論述還是要翻閱經典的書籍,在此感謝貢獻自己智慧型的廣大程式設計人員。今天的主題是單鏈表,這是一種非常常見的資料結構,隸...