五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

郝斌數(shù)據(jù)結(jié)構(gòu)自學(xué)教程(78集全)上課板書和源代碼查看簡(jiǎn)介

2023-08-19 17:21 作者:圣凱shengkai  | 我要投稿

在P74里,郝斌老師,在結(jié)構(gòu)體創(chuàng)建時(shí),沒(méi)有賦初值,而是在后面的Create...函數(shù)里賦的初值。

我嘗試在結(jié)構(gòu)里里面賦初值,而在后面函數(shù)里只建立部分連接,導(dǎo)致程序最后運(yùn)行到一半就卡住。

這是我的錯(cuò)誤源代碼:

#include <stdio.h>

#include <malloc.h>

struct BTNode {

struct BTNode* pLchild = NULL;

char BTData;

struct BTNode* pRchild = NULL;

};

struct BTNode* CreateTree();

void PreTraverse(BTNode* BTree);

void InTraverse(BTNode* BTree);

void PostTraverse(BTNode* BTree);

int main()

{

struct BTNode* BTHead = CreateTree();

printf("以下是先序遍歷的結(jié)果:\n");

PreTraverse(BTHead);

printf("\n");

printf("以下是中序遍歷的結(jié)果:\n");

InTraverse(BTHead);

printf("\n");

printf("以下是后序遍歷的結(jié)果:\n");

PostTraverse(BTHead);

}

//創(chuàng)建鏈?zhǔn)綐?/p>

struct BTNode* CreateTree()

{

struct BTNode* NodeA = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeB = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeC = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeD = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeE = (struct BTNode*)malloc(sizeof(BTNode));


NodeA->BTData = 'A';

NodeB->BTData = 'B';

NodeC->BTData = 'C';

NodeD->BTData = 'D';

NodeE->BTData = 'E';


NodeA->pLchild = NodeB;

NodeA->pRchild = NodeC;

NodeC->pLchild = NodeD;

NodeD->pRchild = NodeE;

return NodeA;

}

//遍歷鏈?zhǔn)綐?/p>

//1.先序遍歷

void PreTraverse(BTNode* BTree)

{

if (BTree == NULL)

{

return;

}

printf("%c ", BTree->BTData);

PreTraverse(BTree->pLchild);

PreTraverse(BTree->pRchild);

}

//2.中序遍歷

void InTraverse(BTNode* BTree)

{

if (BTree == NULL)

{

return;

}

PreTraverse(BTree->pLchild);

printf("%c ", BTree->BTData);

PreTraverse(BTree->pRchild);

}

//3.后序遍歷

void PostTraverse(BTNode* BTree)

{

if (BTree == NULL)

{

return;

}

PreTraverse(BTree->pLchild);

PreTraverse(BTree->pRchild);

printf("%c ", BTree->BTData);

}


在上網(wǎng)搜索原因后,才得知,C語(yǔ)言結(jié)構(gòu)體里不能賦初始值!

不知道為什么的,看參考鏈接:https://blog.csdn.net/Dontla/article/details/117920832

修改后的正確代碼:

【與上面的錯(cuò)誤代碼相比,這里的代碼只是將結(jié)構(gòu)體里的賦初值那部分去掉,然后在Create...函數(shù)里手動(dòng)為有空孩子的節(jié)點(diǎn)賦值為NULL】

#include <stdio.h>

#include <malloc.h>

struct BTNode {

/*正確寫法*/

struct BTNode* pLchild;

char BTData;

struct BTNode* pRchild;

};

struct BTNode* CreateTree();

void PreTraverse(BTNode* BTree);

void InTraverse(BTNode* BTree);

void PostTraverse(BTNode* BTree);

int main()

{

struct BTNode* BTHead = CreateTree();

printf("以下是先序遍歷的結(jié)果:\n");

PreTraverse(BTHead);

printf("\n");

printf("以下是中序遍歷的結(jié)果:\n");

InTraverse(BTHead);

printf("\n");

printf("以下是后序遍歷的結(jié)果:\n");

PostTraverse(BTHead);

}

//創(chuàng)建鏈?zhǔn)綐?/p>

struct BTNode* CreateTree()

{

struct BTNode* NodeA = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeB = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeC = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeD = (struct BTNode*)malloc(sizeof(BTNode));

struct BTNode* NodeE = (struct BTNode*)malloc(sizeof(BTNode));


NodeA->BTData = 'A';

NodeB->BTData = 'B';

NodeC->BTData = 'C';

NodeD->BTData = 'D';

NodeE->BTData = 'E';


NodeA->pLchild = NodeB;

NodeA->pRchild = NodeC;


NodeB->pLchild = NULL;

NodeB->pRchild = NULL;


NodeC->pLchild = NodeD;

NodeC->pRchild = NULL;


NodeD->pLchild = NULL;

NodeD->pRchild = NodeE;


NodeE->pLchild = NULL;

NodeE->pRchild = NULL;


return NodeA;

}

//遍歷鏈?zhǔn)綐?/p>

//1.先序遍歷

void PreTraverse(BTNode* BTree)

{

if (BTree == NULL)

{

return;

}

printf("%c ", BTree->BTData);

PreTraverse(BTree->pLchild);

PreTraverse(BTree->pRchild);

}

//2.中序遍歷

void InTraverse(BTNode* BTree)

{

if (BTree == NULL)

{

return;

}

PreTraverse(BTree->pLchild);

printf("%c ", BTree->BTData);

PreTraverse(BTree->pRchild);

}

//3.后序遍歷

void PostTraverse(BTNode* BTree)

{

if (BTree == NULL)

{

return;

}

PreTraverse(BTree->pLchild);

PreTraverse(BTree->pRchild);

printf("%c ", BTree->BTData);

}


郝斌數(shù)據(jù)結(jié)構(gòu)自學(xué)教程(78集全)上課板書和源代碼查看簡(jiǎn)介的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
峡江县| 盈江县| 清远市| 攀枝花市| 奉新县| 庄河市| 扬州市| 平乡县| 即墨市| 育儿| 巴林右旗| 沅陵县| 乐至县| 高台县| 固安县| 封丘县| 山西省| 南昌县| 淅川县| 滨海县| 南召县| 阳江市| 阿鲁科尔沁旗| 龙游县| 大田县| 义乌市| 鄂尔多斯市| 吐鲁番市| 清丰县| 凤山市| 商河县| 龙门县| 天长市| 石家庄市| 白玉县| 额济纳旗| 兴安县| 香港| 道真| 芦溪县| 印江|