連結串列入門與插入連結串列
連結串列為資料與指標相連,便於插入資料
缺點在於查詢比較費時,需要遍歷整個連結串列
#include<stdio.h>
#include<stdlib.h>
//建立結構體表示連結串列的結點型別
struct node
{
int data;
struct node *next;
};
int main()
{
struct node *head,*p,*q,*t;
int i,n,a;
scanf("%d",&n);
head=NULL;//頭指標初始化為空
//其中->表示結構體指標運算子,用來訪問結構體內部的成員
for(i=1;1<=n;i++)//迴圈讀入n個數
{
scanf("%d",&a);
p=(struct node *)malloc(sizeof(struct node));
//動態申請一個空間,用來存放一個節點,並用臨時指標p指向這個節點
p->data=a;//將資料存入當前節點
p->next=NULL;//設定下一個節點為空
if(head=NULL)
head=p;//如果這是第一個建立的節點,則將頭指標指向他
else
q->next=p;//如果不是第一個節點,則將上一個後繼指標指向他
q=p;//指標q也指向當前節點
}
scanf("%d",&a);//讀入待插入的數
t=head;//從連結串列頭部開始遍歷
while(t!=NULL)//到達尾部停止迴圈
{
if(t->next==NULL||t->next->data>a)
//當前遍歷的節點是最後一個或下一個節點大於待插入的數時插入
{
p=(struct node *)malloc(sizeof(struct node));//存放新節點
p->data=a;
p->next=t->next;
t->next=p;
break;
}
t=t->next;
}
t=head;
while(t!=NULL)
{
printf("%d ",t->data);
t=t->next;
}
getchar();getchar();
return 0;
}
相關文章
- 連結串列-插入排序排序
- 結點插入到單連結串列中
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- 連結串列 - 單向連結串列
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列-雙向通用連結串列
- 雙向連結串列 尾節點插入
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 雙向連結串列————查詢、刪除、插入結點
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- Leetcode_86_分割連結串列_連結串列LeetCode
- 資料結構-單連結串列、雙連結串列資料結構
- 連結串列與遞迴遞迴
- 陣列與連結串列陣列
- 資料結構:單迴圈連結串列的建立插入與刪除資料結構
- 單連結串列的排序(插入,選擇,冒泡)排序
- 連結串列
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- 結構與演算法(03):單向連結串列和雙向連結串列演算法
- LeetCode入門指南 之 連結串列LeetCode
- 單連結串列建立連結串列出現問題
- 147. 對連結串列進行插入排序排序
- 遞增的整數序列連結串列的插入
- 為什麼陣列查詢比連結串列要快?而插入刪除比連結串列效率低陣列
- 單向迴圈連結串列——查詢、刪除、插入結點
- 雙向迴圈連結串列————遍歷、查詢、插入結點
- 資料結構—-連結串列的增和插入(2018/10/23)資料結構
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- 連結串列逆序
- 2、連結串列
- 連結串列(python)Python
- 重排連結串列
- (一)連結串列
- 分割連結串列