malloc 结构体_算法与数据结构——结构体变量
沒有顯示結(jié)構(gòu)體類型名稱,之后不能再聲明該類型的結(jié)構(gòu)體變量。
(2)定義結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體變量,便于之后能夠繼續(xù)聲明該類型結(jié)構(gòu)體變量。
struct? Name? ? ? ? ? ? ?//Name為結(jié)構(gòu)體類型名{int a;? ? ? ? ??char b;? ? ? ?float c;? ? ? ??char n[10];?}name1,name2;? ? ? ? ? ? ? ? ? ? ? ? ?因此,結(jié)構(gòu)體數(shù)組的定義就簡(jiǎn)單了:
struct? Name? ? ? ? ?{int a;? ? ? ? ? ?char b;? ? ? ?float c;? ? ? ?char n[10];?}name[10];? ? ? ? ? ??//變量名【數(shù)組長(zhǎng)度】;或者是先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體數(shù)組:struct? Name{int a;? ? ? ? ? ?char b;? ? ??float c;? ? ? ??char n[10];? ?};? ? ? ? ? ? ? ? ? ? ? ??struct Name name[10];??//聲明結(jié)構(gòu)體數(shù)組name,長(zhǎng)度為10。那么在數(shù)據(jù)結(jié)構(gòu)中,如何運(yùn)用結(jié)構(gòu)體變量呢?對(duì)計(jì)算機(jī)考研的同學(xué)來(lái)說(shuō),大家最好的輔導(dǎo)學(xué)習(xí)資料就是王道和天勤,本人也將綜合兩者來(lái)整理。和大多數(shù)過來(lái)人一樣,本人也覺得天勤比王道更基礎(chǔ)易懂。有能力的,推薦主選王道,多刷題;基礎(chǔ)差的,還是考慮天勤比較好,天勤很詳細(xì),代碼比王道的明晰一些。
在數(shù)據(jù)結(jié)構(gòu)中,構(gòu)造結(jié)點(diǎn)也會(huì)用到結(jié)構(gòu)體類型。
(1)方式一:
對(duì)于二叉樹結(jié)點(diǎn)的定義:
typedef?struct?BTNode{
? ? ElemType?data;
//typedef?int?ElemType 給int取新名字
? ? struct?BTNode?*lchild;
? ? struct?BTNode?*rchild;
}BTNode;
此時(shí)制作一個(gè)結(jié)點(diǎn):
BTNode *N;
//定義結(jié)點(diǎn)指針
N=(BTNode*)malloc(sizeof(BTNode));
//申請(qǐng)結(jié)點(diǎn)內(nèi)存空間? ? ? ?在王道里面經(jīng)常會(huì)出現(xiàn)像“ElemType data;”這樣的語(yǔ)句,其實(shí)就是對(duì)應(yīng)注釋中的意思,是在全局中已經(jīng)定義好的,不僅可以形象地知曉類型的意思,也方便整體修改類型,如將int改成long。
但是在王道中也會(huì)出現(xiàn)另一種方式定義和制作結(jié)點(diǎn)
(2)方式二:
對(duì)于二叉樹結(jié)點(diǎn)的定義:
typedef?struct?BTNode{
? ??ElemType?data;
? ? struct?BTNode?*lchild;
? ? struct?BTNode?*rchild;
}BTNode,*Btnode;
此時(shí)制作一個(gè)結(jié)點(diǎn):
Btnode N;
看王道的代碼是也要格外留意,有時(shí)候沒有清晰的說(shuō)明結(jié)點(diǎn)的定義,可不要曲解代碼的意思了。
總結(jié)
以上是生活随笔為你收集整理的malloc 结构体_算法与数据结构——结构体变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: png文件头_文件上传总结
- 下一篇: 用什么来代替switch_一根转动的圆筒