C 中單鏈表的建立

2021-09-11 14:11:27 字數 1350 閱讀 8296

鍊錶作為動態資料結構之一,對其掌握很有必要,鍊錶主要作用有兩個:一是用來代替陣列元素個數不確定的陣列,二是在資料庫管理中對磁碟進行儲存操作。鍊錶分為單鏈表和雙鏈表,單鏈表的末尾結點的指標賦值為0,而雙鏈表的頭部和末尾指標的結點均賦值為0。下面主要介紹單鏈表的一些操作,雙鏈表與其操作類似。對於單鏈表,最基本的操作有鍊錶的建立、鍊錶結點插入、鍊錶結點刪除和鍊錶結點顯示。

定義鍊錶的結點型別:可以是結構體或者某類的物件;

定義鍊錶的頭指標head,並進行初始化為0

定義兩個工作指標p1和p2,用來將結點連線,並其定義結點數n=0.

下面就可以進行鍊錶的建立:

n=n+1;p1=p2=new stu;head=p1//即n=1,建立第乙個結點 

p1=new stu;p2->next=p1;p2=p1;//通過p2將結點連線起來,後面建立結點重複這個步驟就好

p2->next=0;//尾結點

插入頭部結點之前:head=p0;p0->next=p1;

插入中間部分:p2->next=p0;p0->next=p1;

插入尾部:p1->next=p0;p0->next=0;

刪除頭結點:head=p1->next;

刪除中間或者尾部結點:p2->next=p1->next;

下面的例子中包含了這四個操作,結點型別是包含學號,姓名,分數的乙個結構體,具體**如下:

#include //編譯預處理命令,輸入輸出流檔案

#include #include #include #include #include using namespace std;

int n=0;

struct stu

;stu * create();

void list(stu *);

stu * insert(stu *, stu *);

stu * del(stu *,int );

void main()

stu * create()

p2->next=0;

delete p1;

return head;

}void list(stu *head)

}stu * del(stu *head,int num)

if(p1->num==num)

else coutnumnum)

if(p1->num>p0->num)

else

}else

n=n+1;

return head;

}

執行結果如下所示:

C語言 單鏈表的建立

鍊錶 動態地進行儲存分配的一種結構,根據需要開闢記憶體單元。鍊錶有乙個頭變數 head 該變數存放乙個位址指向第乙個元素。鍊錶中每乙個元素稱為乙個結點,每個結點由兩個部分構成,一為存放的資料,二為指向下乙個節點的位址 struct student 鍊錶建立函式 當鍊表建立完成後ptail結點位址最後...

c語言建立單鏈表

include include 資料結構定義 typedef struct lnode lnode,linklist 頭插法 void create linklist l,int a,int n 輸出 void print linklist l void main create l,a,10 pri...

單鏈表建立c 實現

學c 第一編寫鍊錶程式。首先是鍊錶節點的建立,分為指標域和資料域,程式建立如下 typedef struct data typedef struct list 這裡定義了鍊錶的資料域為結構體資料,包含姓名和年齡。指標域包含指向下乙個節點的指標next。輸入節點資料,建立鍊錶。程式如下 list cr...