頭:、、
步驟一:定義節點結構體:
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 建立鍊錶,返回鍊...