Skip to main content

Inorder, preorder, post order traversals using C

TRAVERSALS

#include<stdio.h>

#include<conio.h>

typedef struct node

{

int data;

struct node*left;

struct node*right;

}tree;

tree* createtree();

tree* insert(tree*,tree*);

void preorder(tree*);

void inorder(tree*);

void postorder(tree*);

void main()

{

int ch;

tree*bt;

clrscr();

bt=createtree();

printf("\n \tBINARY TREE TRAVERSAL \n");

printf("\n \t1.traversals \n");

printf("\n \t2.exit\n");

printf("\n \tenter your choice \n");

scanf("%d",&ch);

if(bt==NULL)

{

printf("\nbinary tree is empty\n");

return;

}

switch(ch)

{

case 1:

printf("\n \t preorder traversal \n");

preorder(bt);

printf("\n \t inorder traversal \n");

inorder(bt);

printf("\n \t postorder traversal \n");

postorder(bt);

break;

case 2:

printf("\n exit");

exit(0);

}

getch();

free(bt);

}

tree* createtree()

{

char ch;

tree *bt=NULL,*temp;

do

{

temp=(tree*)malloc(sizeof(struct node));

printf("\n enter the data\n");

scanf("%d",&temp->data);

temp->left=NULL;

temp->right=NULL;

bt=insert(bt,temp);

fflush(stdin);

printf("\n want to add more data y/n :");

scanf("%c",&ch);

}while((ch=='y')||(ch=='Y'));

return bt;

}

tree* insert(tree *bt,tree *temp)

{

if(bt==NULL)

return temp;

else if(temp->data<bt->data)

bt->left=insert(bt->left,temp);

else if(temp->data>bt->data)

bt->right=insert(bt->right,temp);

else if(temp->data==bt->data)

{

printf("\n data is already existing \n");

return bt;

}

return bt;

}

void inorder(tree *bt)

{

if(bt)

{

inorder(bt->left);

printf("%d",bt->data);

inorder(bt->right);

}

}

void preorder(tree *bt)

{

if(bt)

{

printf("%d",bt->data);

preorder(bt->left);

preorder(bt->right);

}

}

void postorder(tree *bt)

{

if(bt)

{

postorder(bt->left);

postorder(bt->right);

printf("%d",bt->data);

}

}

SAMPLE OUTPUT:

Enter the data

5

Want to add more data y/n: Y

Enter the data

2

Want to add more data y/n: Y

Enter the data

3

Want to add more data y/n: Y

Enter the data

4

Want to add more data y/n: N

BINARY TREE TRAVERSAL

1.traversals

2.exit

Enter your choice

1

Preorder traversal 5234

Inorder traversal 2345

Postorder traversal 4325

Comments

Popular posts from this blog

Installing ns3 in Ubuntu 22.04 | Complete Instructions

In this post, we are going to see how to install ns-3.36.1 in Ubuntu 22.04. You can follow the video for complete details Tools used in this simulation: NS3 version ns-3.36.1  OS Used: Ubuntu 22.04 LTS Installation of NS3 (ns-3.36.1) There are some changes in the ns3 installation procedure and the dependencies. So open a terminal and issue the following commands Step 1:  Prerequisites $ sudo apt update In the following packages, all the required dependencies are taken care and you can install all these packages for the complete use of ns3. $ sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake python3-setuptools git qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar gsl-bin libgsl-dev libgslcblas0 wireshark tcpdump sqlite sqlite3 libsqlite3-dev  libxml2 libxml2-dev libc6-dev libc6-dev-i386 libc...

Installation of NS2 in Ubuntu 22.04 | NS2 Tutorial 2

NS-2.35 installation in Ubuntu 22.04 This post shows how to install ns-2.35 in Ubuntu 22.04 Operating System Since ns-2.35 is too old, it needs the following packages gcc-4.8 g++-4.8 gawk and some more libraries Follow the video for more instructions So, here are the steps to install this software: To download and extract the ns2 software Download the software from the following link http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download Extract it to home folder and in my case its /home/pradeepkumar (I recommend to install it under your home folder) $ tar zxvf ns-allinone-2.35.tar.gz or Right click over the file and click extract here and select the home folder. $ sudo apt update $ sudo apt install build-essential autoconf automake libxmu-dev gawk To install gcc-4.8 and g++-4.8 $ sudo gedit /etc/apt/sources.list make an entry in the above file deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe $ sudo apt update Since, it...

How to Create Ubuntu 24.04 Bootable USB Using Rufus [Step-by-Step Guide]

How to Create Ubuntu 24.04 Bootable USB Using Rufus [Step-by-Step Guide] Are you planning to install or try Ubuntu 24.04 LTS ? The easiest and most reliable method is to create a bootable USB drive using Rufus on a Windows system. This detailed guide will help you create a Ubuntu 24.04 USB bootloader using Rufus with easy-to-follow steps and screenshots (optional). Here is the complete video of the bootloader creation and OS installation in Windows 11. 🧰 Requirements A USB flash drive (minimum 8GB recommended) A Windows PC Ubuntu 24.04 LTS ISO file Rufus USB creation tool 🧾 Steps to Create a Ubuntu 24.04 Bootable USB Using Rufus ✅ Step 1: Download Ubuntu 24.04 ISO Visit the official Ubuntu website and download the Ubuntu 24.04 LTS ISO file . ✅ Step 2: Download and Run Rufus Head to Rufus official site and download the latest version. Open the executable file (no installation required). ✅ Step 3: Insert USB Drive Plug in your USB drive. Rufus ...