头文件:
//
// Created by lenovo on 2024/4/14.
//
#ifndef INC_2_FUNCTION_H
#define INC_2_FUNCTION_H
#include <string>
#include <stdlib.h>
typedef char Elemtype;
typedef struct BitNode{
Elemtype c;
struct BitNode *LChild;
struct BitNode *RChild;
}BitNode,*BitPointer;
typedef struct tag{
BitPointer p;
struct tag *pnext;
}tag,*PTag;
#endif //INC_2_FUNCTION_H
代码主体:
#include "function.h"
int main() {
BitPointer NewNode;
BitPointer tree=NULL;
Elemtype c;
PTag QueueHead=NULL,QueueTail=NULL,QueueNode=NULL,Pcur=NULL;
while (scanf("%c",&c)){
if (c=='\n'){
break;
}
NewNode=(BitPointer) calloc(1,sizeof (BitNode));
QueueNode=(PTag) calloc(1,sizeof (tag));
NewNode->c=c;
QueueNode->p=NewNode;
if (tree==NULL){
tree=NewNode;
QueueHead=QueueNode;
QueueTail=QueueNode;
Pcur=QueueNode;
continue;
}else{
QueueTail->pnext=QueueNode;
QueueTail=QueueNode;
}
if (Pcur->p->LChild==NULL){
Pcur->p->LChild=NewNode;
} else if (QueueNode->p->RChild==NULL){
Pcur->p->RChild=NewNode;
Pcur=Pcur->pnext;
}
}
return 0;
}