指標是一塊記憶體的位址,常用於函式改變實參以及鍊錶中
指標的使用比較靈活
//示例
#include
intmain()
有時程式中會使用一些資料來表示乙個物體的屬性,這個時候再用普通的變數就不再方便
#include
struct x
;//x是結構體型別,a,b是x型別結構體的屬性
//鍊錶中屬性可以使任意型別甚至新的結構體(非自身型別)
struct y
;int
main()
有時會遇到一連串的有序資料進行增刪或反覆檢索,使用陣列已經不在方便(時間複雜度高)
鍊錶是一組有關聯的特殊的結構體,乙個結構體即乙個節點
(/*型別名*/ *)malloc(記憶體大小),分配乙個特定型別的記憶體並返回指向這塊記憶體的指標
free(/*(指標)位址*/),釋放指標所指的記憶體
標頭檔案:stdlib.h / malloc.h
//示例
#include
struct
link()
;//一般情況
intmain()
單鏈表的建立
單鏈表有兩個屬性:資料集和乙個指標
資料集內容是任意的
//示例
#include
struct
link()
;void
*add
(struct link *head)
;int
main()
return;}
void
*add
(struct link *head)
else
p->next=pr;
} pr->next=
null
;int data;
scanf
("%d"
,&data)
; pr->data=data;
return head;
}
雙鏈表雙鏈表的建立
雙鏈表也有兩個屬性:資料集和兩個指標
資料集內容是任意的
//示例
#include
struct
link()
;void
*add
(struct link *head)
;int
main()
return;}
void
*add
(struct link *head)
else
p->next=pr;
} pr->next=
null
; pr->last=p;
int data;
scanf
("%d"
,&data)
; pr->data=data;
return head;
}
刪除和插入操作
有時會往一組資料(鍊錶)中特定位置插入資料
//單鏈表的刪除
struct link
;//結構體型別
//三者關係為:last->next=p,p->next=next
last->next=next;
free
(p);
//釋放記憶體
/************/
//雙鏈表的刪除
struct link
;//結構體型別
//三者關係為:last->next=p,p->next=next,p->last=last,next->last=p;
last->next=next;
next->last=last;
free
(p);
//釋放記憶體
單鏈表的插入操作的實現(swust oj-952)
環形鍊錶
首尾相接的單向或雙向鍊錶
//單向
tail->next=head;
//雙向
tail->next=head;
head->last=tail;
相關題目:[猴子報數(swust oj-142) C語言基礎 C語言第四章
第四章 最簡單的c程式設計 順序程式設計 程式應該包括資料描述 由宣告部分來實現 和資料操作 由語句來實現 資料描述包括定義資料結構和在需要時對資料賦予初值。資料操作的任務是對已提供的資料進行加工。c語句分為以下5類。1 控制語句。1 if else.條件語句 2 for 迴圈語句 3 while ...
C語言第四天
今天我們學習了陣列,包括陣列的定義,陣列的排序,氣泡排序法。int array 10 printf 改變前 for int i 0 i 10 i printf n for int i 0 i 10 1 i printf 改變後 for int i 0 i 10 i printf n 這很重要,要牢記...
C語言(第四天)
型別轉換 小結這裡的 不是相等的意思,而是將值賦給變數的意思。那麼它的語法規則是什麼呢?資料型別 變數名 值 該語法便是c語言賦值運算子的使用方法。加法運算子,就沒有什麼可說的。相信大家都會使用。與加法使用類似,使用方法簡單。相信大家都會使用。乘法顧名思義,就是至少兩數相乘。這裡不在給出 示例,大家...