2020-09-20 周記錄(三)


視覺設(shè)計(jì)——王曉豪

數(shù)據(jù)結(jié)構(gòu)與算法

線性表1

線性表:由0個或多個數(shù)據(jù)元素組成的有限序列

數(shù)學(xué)語言定義

數(shù)據(jù)類型

例如:整型,浮點(diǎn)型蕊苗,字符型.......

抽象數(shù)據(jù)類型

線性表的抽象數(shù)據(jù)類型

Operation


C語言

遞歸漢諾塔

#include <stdio.h>

#define MAX_NUM 64

int schedule[MAX_NUM+1][MAX_NUM+1];

int arrange(int begin, int num);

int arrange(int begin, int num)

{

? ? ? ? int i, j;

? ? ? ? if (num == 2)

? ? ? ? {

? ? ? ? ? ? ? ? schedule[begin][1] = begin;

? ? ? ? ? ? ? ? schedule[begin][2] = begin + 1;

? ? ? ? ? ? ? ? schedule[begin+1][1] = begin + 1;

? ? ? ? ? ? ? ? schedule[begin+1][2] = begin;

? ? ? ? ? ? ? ? return 0;

? ? ? ? }

? ? ? ? arrange(begin, num/2);

? ? ? ? arrange(begin + num/2, num/2);

? ? ? ? for (i = begin + num/2; i < begin + num; i++)

? ? ? ? {

? ? ? ? ? ? ? ? for (j = num/2 + 1; j <= num; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? schedule[i][j] = schedule[i-num/2][j-num/2];

? ? ? ? ? ? ? ? }

? ? ? ? }

? ? ? ? for (i = begin; i < begin + num/2; i++)

? ? ? ? {

? ? ? ? ? ? ? ? for (j = num/2 + 1; j <= num; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? schedule[i][j] = schedule[i+num/2][j-num/2];

? ? ? ? ? ? ? ? }

? ? ? ? }

}

int main(void)

{

? ? ? ? int num, i, j;

? ? ? ? printf("請輸入?yún)①惖年?duì)伍數(shù)量:");

? ? ? ? scanf("%d", &num);

? ? ? ? // 檢查num是否2的N次方

? ? ? ? // 注意难菌,這里是&,不是&&

? ? ? ? // &是按位與操作,1&1==1硫眨,0&1==0,0&0 == 0

? ? ? ? if (num & num - 1)

? ? ? ? {

? ? ? ? ? ? ? ? printf("參數(shù)隊(duì)伍的數(shù)量必須是2的N次方巢块!\n");

? ? ? ? ? ? ? ? return -1;

? ? ? ? }

? ? ? ? arrange(1, num);

? ? ? ? printf("編 號");

? ? ? ? for (i = 1; i < num; i++)

? ? ? ? {

? ? ? ? ? ? ? ? printf("\t第%d天", i);

? ? ? ? }

? ? ? ? putchar('\n');

? ? ? ? for (i = 1; i <= num; i++)

? ? ? ? {

? ? ? ? ? ? ? ? for (j = 1; j <= num; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? printf("%3d\t", schedule[i][j]);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? putchar('\n');

? ? ? ? }

? ? ? ? return 0;

}


分析


快速排序

動態(tài)內(nèi)存管理

malloc函數(shù)

free函數(shù)

內(nèi)存泄漏




初始化內(nèi)存空間

memset 函數(shù)

calloc 函數(shù)

realloc?函數(shù)

C語言內(nèi)存布局規(guī)律

堆和棧

高級宏定義

內(nèi)聯(lián)函數(shù)

#?和 ##

可變參數(shù)


結(jié)構(gòu)體

結(jié)構(gòu)體聲明

定義結(jié)構(gòu)體類型變量

訪問結(jié)構(gòu)體變量

初始化結(jié)構(gòu)體變量

結(jié)構(gòu)體嵌套

結(jié)構(gòu)體數(shù)組

初始化結(jié)構(gòu)體數(shù)組

結(jié)構(gòu)體指針

指針 *pt

箭頭 ->


傳遞結(jié)構(gòu)體變量

傳遞結(jié)構(gòu)體變量的指針

動態(tài)申請結(jié)構(gòu)體

鏈表

· 概念: 鏈表是一種線性的數(shù)據(jù)結(jié)構(gòu)礁阁,通過指針將零散的內(nèi)存塊連接起來巧号,鏈表的每個內(nèi)存塊成為節(jié)點(diǎn)

· 鏈表的實(shí)現(xiàn)方法: 鏈表一結(jié)構(gòu)體為節(jié)點(diǎn)(包含數(shù)據(jù)域和指針域),利用數(shù)據(jù)域來存儲數(shù)據(jù)姥闭,然后將每個節(jié)點(diǎn)的指針都指向下一個節(jié)點(diǎn)丹鸿,以此來實(shí)現(xiàn)數(shù)據(jù)的儲存

·?鏈表的優(yōu)缺點(diǎn)(相較于數(shù)組而言):

·?優(yōu)點(diǎn):?可以不斷擴(kuò)展鏈表的長度,刪除和插入操作比較方便

· 缺點(diǎn):?創(chuàng)建棚品,查找操作較為麻煩

創(chuàng)建鏈表

頭插法

操作:每次都會將新節(jié)點(diǎn)插在頭結(jié)點(diǎn)之后卜高。

特點(diǎn):數(shù)據(jù)的輸入順序與鏈表的存儲順序相反

打印成員


釋放頭指針

尾插法

操作:將新節(jié)點(diǎn)不斷地插入鏈表的末尾從而來創(chuàng)建鏈表

特點(diǎn):數(shù)據(jù)的輸入順序與鏈表的存儲順序相同

提高效率

搜索單鏈表

中間插入

鏈表中刪除?

鏈表的遍歷

思路:先定義一個節(jié)點(diǎn)讓它等于鏈表的第一個節(jié)點(diǎn),再在遍歷時不斷對其進(jìn)行判斷南片,若為BULL則鏈表到頭了應(yīng)該結(jié)束循環(huán)掺涛,若不為NULL則該節(jié)點(diǎn)等于鏈表的下一個節(jié)點(diǎn)并繼續(xù)循環(huán)

增加新節(jié)點(diǎn)

思路:遍歷鏈表找到要插入的位置的前一個節(jié)點(diǎn),操作指針插入新節(jié)點(diǎn)即可

說明:該函數(shù)第一個參數(shù)是鏈表頭的地址疼进,第二個參數(shù)是要插入的位置薪缆,第三個參數(shù)是新節(jié)點(diǎn)的數(shù)據(jù)。而第一個參數(shù)之所以是鏈表頭的地址而非是鏈表頭是因?yàn)椋杭偃裟阆胍迦氲降?個節(jié)點(diǎn)之后(第一個節(jié)點(diǎn)之前)伞广,那么就要操作頭結(jié)點(diǎn)的指針了拣帽,為了使在函數(shù)中的操作能影響到鏈表頭,所以傳入的是鏈表頭的地址嚼锄。

刪除節(jié)點(diǎn)

1.按位刪除節(jié)點(diǎn)

思路:刪除節(jié)點(diǎn)的關(guān)鍵在于找到要刪除節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)减拭,然后通過改變前驅(qū)節(jié)點(diǎn)的指針域來完成刪除操作

2.按數(shù)據(jù)刪除節(jié)點(diǎn)

思路:和按位刪除節(jié)點(diǎn)一樣的原理,不過要注意:我們刪除的可能不止一個節(jié)點(diǎn)区丑,而當(dāng)我們刪除了一個節(jié)點(diǎn)之后拧粪,我們維系的前后指針關(guān)系就會破壞,因此每當(dāng)我們刪除一個節(jié)點(diǎn)之后要及時恢復(fù)前后指針的關(guān)系

內(nèi)存池

讓程序額外維護(hù)一個緩存區(qū)域

鏈表

小知識

內(nèi)存4區(qū):

1.代碼區(qū):函數(shù)代碼沧侥,存放在代碼區(qū)可霎,函數(shù)名就是這個函數(shù)的地址。

2.全局區(qū):全局的變量宴杀,字符串常量癣朗,初始化(int a...)

3.棧區(qū):告訴計(jì)算機(jī)? int double char?定義一個變量

4.堆區(qū):自己確定有多大,裝什么數(shù)據(jù)...用完之后還要不要繼續(xù)使用旺罢,自己需要決定開辟和釋放? include<stdlib.h>

? ? ? ? ? ? ? malloc(? )函數(shù):開辟內(nèi)存? ??

? ? ? ? ? ? ? (int *)malloc(n)? 存放int類型

? ? ? ? ? ? ? (float **)malloc(n)? 存放地址類型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旷余,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扁达,更是在濱河造成了極大的恐慌正卧,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罩驻,死亡現(xiàn)場離奇詭異穗酥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)惠遏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門砾跃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人节吮,你說我怎么就攤上這事抽高。” “怎么了透绩?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵翘骂,是天一觀的道長。 經(jīng)常有香客問我帚豪,道長碳竟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任狸臣,我火速辦了婚禮莹桅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烛亦。我一直安慰自己诈泼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布煤禽。 她就那樣靜靜地躺著铐达,像睡著了一般。 火紅的嫁衣襯著肌膚如雪檬果。 梳的紋絲不亂的頭發(fā)上瓮孙,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音选脊,去河邊找鬼衷畦。 笑死,一個胖子當(dāng)著我的面吹牛知牌,可吹牛的內(nèi)容都是我干的祈争。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼角寸,長吁一口氣:“原來是場噩夢啊……” “哼菩混!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扁藕,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沮峡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后亿柑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邢疙,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疟游。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呼畸。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颁虐,靈堂內(nèi)的尸體忽然破棺而出僻他,到底是詐尸還是另有隱情坏瞄,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站像鸡,受9級特大地震影響泣特,放射性物質(zhì)發(fā)生泄漏柿菩。R本人自食惡果不足惜部凑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望车海。 院中可真熱鬧笛园,春花似錦、人聲如沸容劳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竭贩。三九已至蚜印,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間留量,已是汗流浹背窄赋。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留楼熄,地道東北人忆绰。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像可岂,于是被迫代替她去往敵國和親错敢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355