結構體也叫做更複雜的結構型別,只要型別能夠做的事情,結構體也能做
struct person
struct person yu;
struct person *p;
p =&yu;
// 匿名結構體只能用一次
struct node
// 結構體內存占用圖如下
使用共用體實現ip轉整數的功能
#include
union ipip;
unsigned
int num;};
// 判定電腦是大端機還是小端機
intis_little()
//小端機會輸出0
intmain()
;int arr[4]
;// 判斷是不是小端機
printf
("%d\n"
,is_little()
);while(~
scanf
("%s"
,str)
)return0;
}
##指標和位址
#include
struct data
;// a[2]是用結構體定義的陣列
#define p(func)
intmain()
##鍊錶
鍊錶的應用場景1:leetcode #141 環狀鍊錶
class
solution
while
(p != q && q && q-
>next)
;// 用下面兩句話會超時
// 不可以用兩個if語句一起寫return 否則會出現編譯不過的情況if(
(q==
nullptr)||
(q->next ==
nullptr))
return0;
else
return1;
// 或者可以返回下面的這句話,下面這句話意思是,如果q和q->next都不是空位址,就直接返回1
// return q && q->next;}}
;
leetcode #142 環狀鍊錶ii
class
solution
while
(p != q && q && q-
>next)
;// 如果都是空了,就返回空節點,說明沒有環
if(q ==
nullptr
|| q-
>next ==
nullptr
)return
nullptr
; p = head;
// 相遇在環的起始位置,q還需要再走a步。
while
(p != q) p = p-
>next, q = q-
>next;
return q;}}
;
leetcode #202 快樂數
從收斂性性質可以知道,這個快樂書是有環的。那麼只要找到它能不能到1,或者說
class
solution
return z;
}bool
(int n)
while
(p != q && q !=1)
;// 如果出現迴圈又沒有1,就返回false了
return q ==1;}};
leetcode #206 翻轉鍊錶// 遞迴翻轉
class solution
};
class
solution
// p= p->next);
}return pre;}}
;
leetcode #92 反轉鍊錶ii// 先找到要翻轉的頭一位,之後呼叫翻轉頭n個節點的函式,翻轉之後再讓一節點指標指向被翻轉之後的鍊錶的頭結點
class
solution
listnode *
reversebetween
(listnode *head,
int m,
int n)
};
leetcode #25 k個一組翻轉鍊錶
class
solution
// 這個是定義這個函式?
listnode *
reversen
(listnode *head,
int n)
listnode *
reversekgroup
(listnode *head,
int k)
return ret.next;}}
;
leetcode #61 旋轉鍊錶
將頭指標向右移動k位,之後,把k-1位的那個節點斷開,變成空。這樣就起到右移節點的目的了。
class
solution
};
leetcode #24旋轉鍊錶class
solution
listnode* newhead = head-
>next;
// 調換的是newhead後面的那兩個節點
head-
>next =
(newhead-
>next)
; newhead-
>next = head;
return newhead;}}
;
leetcode #19 刪除鍊錶的倒數第n個節點
class
solution
};
leetcode #83 刪除排序鍊錶中的重複節點class
solution
else
}return head;}}
;
leetcode #82 刪除排序鍊錶中的重複節點iiclass
solution
else
}return ret.next;}}
;
webpack配置超詳細注釋解讀
const htmlwebpackplugin require html webpack plugin const cleanwebpackplugin require clean webpack plugin 需要解構,正確方式如下 const require clean webpack plug...
C 專案(有注釋超詳細)
定義函式或者類盡量放到標頭檔案中,這樣不容易出現重複命名和 冗雜的問題。pragma once include using namespace std include worker.h class manager public worker 例如我們需要乙個worker類,最好不要在乙個檔案中先宣告...
C 歸併排序(注釋超詳細)
c 歸併排序的實現 1 mergesort.h 初始版本,公升序排序 時間複雜度 o nlbn 將n個待排序記錄歸併次數為lbn,一趟歸併o n 空間複雜度 o n 遞迴棧最大深度為 lbn 1 而輔助陣列大小為n 穩定 無論最好還是最壞情況時間複雜度都是o nlbn ifndef mergesor...