線性表的鏈式儲存結構——鍊錶,包含單鏈表、雙鏈表、迴圈鍊錶等。單鏈表的結點由資料元素和指向下乙個結點的指標構成,是最簡單的一種鍊錶結構。
對單鏈表的操作非常多,如查詢、插入、刪除、逆置、列印等,現對這些操作的實現做乙個小結,**用c語言實現。
#include#includetypedef struct lnode
linklist;
extern linklist *creatlistf();//頭插法
extern linklist *creatliste();//尾插法
extern int locatelist(linklist *head, char e);//查詢結點
extern linklist *insertlist(linklist *&head, int i, char e);//插入結點
extern linklist *deletelist(linklist *&head, int i, char &e);//刪除結點
extern int lengthlist(linklist *head);//計算鍊錶的長度
extern void printlist(linklist *head);//列印鍊錶
extern linklist *reverselist(linklist *&head);//逆置鍊錶
linklist *creatlistf()
return head;
}linklist *creatliste()
q->next=null;
return head; }
int locatelist(linklist *head, char e)
if(null==p)
else
return i;
}linklist *insertlist(linklist *&head, int i, char e)
if(null==p)
q=(linklist *)malloc(sizeof(linklist));
q->data=e;
q->next=p->next;
p->next=q;
return head;
}linklist *deletelist(linklist *&head, int i, char &e)
if(null==p)
else
e=q->data;
p->next=q->next;
free(q);
return head; }}
int lengthlist(linklist *head)
return n;
}void printlist(linklist *head)
printf("\n");
}linklist *reverselist(linklist *&head)
return head;
} return head;//假設是空表或單結點表,直接返回head
}
單鏈表的運算
1 建立單鏈表 假設線性表中結點的資料型別是字元,我們逐個輸入這些字元型的結點,並以換行符 n 為輸入條件結束標誌符。動態地建立單鏈表的常用方法有如下兩種 1 頭插法建表 演算法思路 從乙個空表開始,重複讀入資料,生成新結點,將讀入資料存放在新結點的資料域中,然後將新結點插入到當前鍊錶的表頭上,直到...
單鏈表的實現
include includetypedef struct node 定義鍊錶 snode snode creat 建立鍊錶的函式 q next null return head int length snode head 測鍊錶的結點數 return i void display snode he...
單鏈表的實現
單鏈表夜市線性表的一種表現形式,乙個表節點由乙個資料空間和乙個指標域組成。指標域記錄下乙個結點的位址。鍊錶在插入,刪除功能中效率高。但是讀取某個結點的時候需要順序讀取。效率不如順序儲存形式。下面是一些鍊錶實現的 鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h define...