真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言gethead函數(shù) C語言head

C語言 數(shù)據(jù)結(jié)構(gòu) 二叉樹層次遍歷

#include?"stdio.h"

創(chuàng)新互聯(lián)專注于玉山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。玉山網(wǎng)站建設(shè)公司,為玉山等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

#include?"stdlib.h"

typedef?struct?btnode//二叉鏈表類型定義

{char?data;

struct?btnode?*lchild,*rchild;

}bintree,*Bintree;

typedef?struct?LinkQueueNode//鏈隊(duì)列類型定義

{bintree?*data;

struct?LinkQueueNode?*next;

}LKQueNode;

typedef?struct?LKQueue

{LKQueNode?*front,*rear;

}LKQue;

void?InitQueue(LKQue?*LQ)//初始化隊(duì)列

{LKQueNode?*p;

p=(LKQueNode*)malloc(sizeof(LKQueNode));

LQ-front=p;

LQ-rear=p;

(LQ-front)-next=NULL;

}

int?EmptyQueue(LKQue?*LQ)//判斷隊(duì)列是否為空

{if(LQ-front==LQ-rear)

return?1;

else?return?0;

}

void?EnQueue(LKQue?*LQ,Bintree?x)//入隊(duì)列

{LKQueNode?*p;

p=(LKQueNode*)malloc(sizeof(LKQueNode));

p-data=x;

p-next=NULL;

(LQ-rear)-next=p;

LQ-rear=p;

}

int?OutQueue(LKQue?*LQ)//出隊(duì)列

{LKQueNode?*s;

if?(?EmptyQueue(LQ))

{exit(0);return?0;}

else

{s=(LQ-front)-next;

(LQ-front)-next=s-next;

if(s-next==NULL)

LQ-rear=LQ-front;

free(s);

return?1;}

}

Bintree?GetHead(LKQue?*LQ)//取隊(duì)列首元素

{LKQueNode?*p;bintree?*q;//q-data=-1;?錯(cuò)誤在這里沒有分配空間就賦值

if(EmptyQueue(LQ))

return?q;

else?{p=LQ-front-next;

return?p-data;

}

}?

Bintree?initiate()//建二叉樹?

{char?ch;Bintree?t;

ch=getchar();????

if(ch=='#')?t=NULL;

else

{t=(Bintree)malloc(sizeof(bintree));

t-data=ch;

t-lchild=initiate();

t-rchild=initiate();

}

return?t;

}

void?Visit(Bintree?p)//訪問節(jié)點(diǎn)

{printf("%c",p-data);?//輸出是char

}

int?height(Bintree?t)

{int?ld,rd;

if(t==NULL)?return?0;

else?

{ld=height(t-lchild);

rd=height(t-rchild);

return?1+(ldrd?ld:rd);

}

}

void?levelorder(Bintree?bt)//層次遍歷

{LKQue?Q;Bintree?p;

InitQueue(Q);

if(bt!=NULL)

{EnQueue(Q,bt);

while(!EmptyQueue(Q))

{p=GetHead(Q);

OutQueue(Q);

Visit(p);

if(p-lchild!=NULL)??EnQueue(Q,p-lchild);

if(p-rchild!=NULL)??EnQueue(Q,p-rchild);

}

}

}

void?main()

{Bintree?T;

T=initiate();

printf("%d",height(T));

levelorder(T);

}

C語言 很簡(jiǎn)單的鏈表編譯器不給過 找不出問題

return "head"; 為什么函數(shù)返回是字符串,你的返回類型是結(jié)構(gòu)體指針的

cannot convert `const char*' to `a*' in return

不能反轉(zhuǎn)char * 到 a* 的返回值

#include stdio.h

#include malloc.h

#define Len sizeof(a)

#define null 0

#include conio.h

struct a

{

int k;

struct a *next;

};

struct a* gethead()//建立

{

struct a *head, *p2;

printf("please enter data.");

head=p2=(struct a*)malloc(Len);

scanf("%d",p2-k); //輸入要地址

while(p2-k!=0)

{

p2-next=(struct a*)malloc(Len);

p2=p2-next;

scanf("%d",p2-k); //輸入要地址

}

p2-next=null;

return head; //返回指針

}

main()

{

struct a * head=gethead(); //變量名都沒有

}

C語言數(shù)據(jù)結(jié)構(gòu)打印楊輝三角

有兩個(gè)地方錯(cuò)誤

1:IsEmpty函數(shù)中是空返回真,非空返回假,你寫反了

int?IsEmpty(LinkQueue?*Q)

{

if(Q-front==Q-rear)

return(TRUE);////////////

else??return(FALSE);/////////////

}

2:GetHead函數(shù)中*x=Q-front-next-data;因?yàn)镼-front只是頭指針,不保存數(shù)據(jù)

int?GetHead(LinkQueue?*Q,int?*x)

{

if(!IsEmpty(Q))

{

*x=Q-front-next-data;///////////////

return(TRUE);

}

else?return(FALSE);

}

C語言 關(guān)于數(shù)據(jù)結(jié)構(gòu)隊(duì)列的問題 高分懸賞 各位高手請(qǐng)慢慢看

就幾個(gè)明顯的錯(cuò)誤提一下

1. 函數(shù) enterqueue中

s-queue[s-tear];

這句沒有實(shí)際操作,估計(jì)應(yīng)該是 s-queue[s-tear] = x; 用于在隊(duì)列最后添加一個(gè)新的元素

2. 主函數(shù)中,大約21行左右

for(j=0;jk;j++)

{

deletequeue(l,e);

if(gethead(l,f)==0) // 這里多了一個(gè)分號(hào),導(dǎo)致判斷后沒有任何動(dòng)作可之心,刪之

*f=0;

*e=*e+*f;

enterqueue(l,*e);

}

3. 主函數(shù)大約30行左右,打印輸出

for(j=0;jl-tear;j++,p++) // 這里不可用i作循環(huán)變量,否則干擾外循環(huán)i

printf("%d ",*p);

4. deletequeue(l,e);

if(gethead(l,f)==0) // 多了分號(hào)

*f=0;

*e=*e+*f;

從語句目的看,是希望從deletequeue和gethead函數(shù)中,得到e或者f的地址,但是 1)由于傳遞的是指針的值,所以即使函數(shù)中修改了,主函數(shù)中無法得到新的地址;2)這兩個(gè)函數(shù)體中,并沒有設(shè)置地址的代碼,總之,e 和 f 是沒有可操作地址的

5. 最重要一點(diǎn),沒有看懂解題思路是什么。

即使按照刪一個(gè)節(jié)點(diǎn),再添兩個(gè)節(jié)點(diǎn)的想法,也應(yīng)該從隊(duì)列的后面開始,這樣間隔相加,并放在后移一個(gè)位置上,不至于影響后續(xù)計(jì)算。而這段程序從前開始修改隊(duì)列,那新的節(jié)點(diǎn)產(chǎn)生,不就干擾后面的計(jì)算了?

所以,建議先說明一下解題思路,這樣便于解決程序中的各種問題。


本文標(biāo)題:c語言gethead函數(shù) C語言head
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/hhsdoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部