C語言基礎(第四更)

2021-09-20 18:45:24 字數 2237 閱讀 6905

指標是一塊記憶體的位址,常用於函式改變實參以及鍊錶中

指標的使用比較靈活

//示例

#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語言賦值運算子的使用方法。加法運算子,就沒有什麼可說的。相信大家都會使用。與加法使用類似,使用方法簡單。相信大家都會使用。乘法顧名思義,就是至少兩數相乘。這裡不在給出 示例,大家...