#include <stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>#include<stdarg.h>#include<time.h>structnode{LongData//one or more items that hold data Longcount; structNode *pleft;//The left child points to a two-pronged tree structNode *pright;//right child pointing to a binary tree};structNode * CreateNode (Longvalue) { structNode *p=malloc(sizeof(structnode)); P->pleft=p->pright=NULL; P->data=value; P->count=1;}structNode * AddNode (structNode * Pnode,Longv) { //situation one pnode==null if(pnode==NULL) { returnCreateNode (v); } //Pnode->data=v if(pnode->data==v) {Pnode->count++; returnPnode; } //v more than node data if(v>pnode->data) { if(pnode->pright==NULL) {Pnode->pright=CreateNode (v); returnPnode->Pright; }Else returnAddNode (PNODE->PRIGHT,V);//Recursive invocation } //v less than node data if(v<pnode->data) { if(pnode->pleft==NULL) {Pnode->pleft=CreateNode (v); returnPnode->Pleft; }Else returnAddNode (PNODE->PLEFT,V);//Recursive invocation } returnNULL;}voidTraversal (structnode*Pnode) { inti; if(pnode->pleft!=NULL) {Traversal (Pnode-pleft); } for(i=1; i<=pnode->count;i++) {printf ("%d,",pnode->data); } if(pnode->pright!=NULL) {Traversal (Pnode-pright); } }intMainvoid){ structnode*Root; LongV,i; printf ("Please enter binary root node value:"); scanf ("%d",&v); Root=createnode (v);//root node for(i=0; i<=Ten; i++) {AddNode (root,i); } //Traversetraversal (root); GetChar (); GetChar (); GetChar (); return 0;}
Traversal of a C + + two fork Tree