鍊錶建立(基礎方法)

2022-09-11 10:54:13 字數 1648 閱讀 3527

頭:、、

步驟一:定義節點結構體:

struct node

int data;//資料域

struct node *next;//指標域

步驟二:建立節點函式:

struct node *creat_node(int data)

struct node *p = (struct node *)malloc(sizeof(struct node));//定義結構體指標,分配記憶體

if(null==p)//出錯判斷

printf("malloc error!\n");

return null;

bzero(p,sizeof(struct node));//清空記憶體

p->data = data;

p->next = null;//賦值操作

return p;

步驟三:連線節點

1.頭插法(方法的實現有多種)

void insert_head(struct node *head,struct node *new)

struct node *p = head;

new->next = p->next;//斷頭接尾

head->next = new;//接頭

2.尾插法

void insert_tail(struct node *head,struct node *new)

struct node *p=head;

while(p->next!=null)//遍歷到尾

p=p->next;

p->next = new;//尾部插入節點

}步驟四:處理節點

1.節點的增加:同連線節點

2.節點的刪除:

void rm_num(struct node *head,int num)//根據鍊錶中的位數刪除

struct node *p = head;

int i = 1; //與實際在鍊錶中的位置對齊(p->next是第一位)

while(ii++;

p=p->next;

struct node *q = p->next;//暫存目標節點

p->next = p->next->next;//將前一節點與後一節點連線

free(q);  

void rm_data(struct node *head,int data)//根據資料域的資料刪除

struct node *p=head;

struct node *q;

while(p->next!=null)

else //不是末節點

}else  //不是目標節點}}

3.節點資料域資料的更改:

查詢方法同刪除,將處理方式由 刪除後釋放空間 改為將資料域資料更改:

p->next->data = data;

即可4.節點的查詢、遍歷:

直接遍歷列印

void list_show(strcut node *head)

struct node *p=head;

while(p->next!=null)

printf("%d  ",p->data);//得到並處理節點

p=p->next;

}查詢節點,同刪除的查詢方式

以上方法可呼叫性比較強

鍊錶(鍊錶建立)

先找到了一些與單鏈表相關的概念 2.指標域 ai元素儲存指向後繼元素儲存位置的資訊 3.結點 包含資料域和指標域 4.單鏈表 每個結點只包含乙個指標域的線性表 5.頭指標 要素 鍊錶中第乙個結點的儲存位置 線性表最後乙個結點指標為空 6.頭結點 非要素 單鏈表第乙個結點前附設乙個結點 其指標域指向第...

C語言 鍊錶基礎 整表建立

指標是鍊錶的基礎,鍊錶是乙個c語言的重難點,是學習作業系統還有資料結構演算法的基礎。大師兄簡單做乙個鍊錶的整表建立程式,倆種方法,頭插法還有尾插法。基礎的同學可以仔細品味一下,include typedef struct node node typedef struct node linklist ...

鍊錶基礎,建立,查詢,插入,整體刪除

本文是想給對鍊錶基本不是太了解的人準備,這篇文章中的方法都只是最基本的方法,可以在 c語言程式設計 一書中找到,我只是補上了自己的理解幫助沒有看懂的小夥伴,鍊錶更難的方法我會在以後補上,一起加油!鍊錶的建立 建立和輸出有若干個學生記錄的帶頭結點的單向鍊錶,用指標型別的函式creat 建立鍊錶,返回鍊...