SCHOOL OF CODE BUILDERS
Learn To CODE. Become A DEVELOPER.
Pages
HOME
DATA STRUCTURES
STRINGS
ARRAYS
MATRIX
BINARY TREES
LINKED LIST
STACK
QUEUE
SORTING
SEARCHING
C
PYTHON
PSEUDOCODE
CONTEST PROBLEMS
ALGORITHMS
PATTERNS
PHP
C PUZZLES
C INTERVIEW QUESTIONS
JAVA
C++
HASHING
RECURSION
BASIC C PROGRAMS
TCS-CODEVITA
FACEBOOK
CONTACT US
Level order traversal in spiral form
Level order traversal in spiral form
#include
#include
struct node { int data; struct node *left,*right; }; struct node* newnode(int data) { struct node *temp=(struct node*)malloc(sizeof(struct node)); temp->data=data; temp->left=temp->right=NULL; return temp; } struct node* insert(struct node *root,int data) { if(root==NULL) return newnode(data); if(data < root->data) root->left=insert(root->left,data); else root->right=insert(root->right,data); return root; } void inorder(struct node *root) { if(root==NULL) return; inorder(root->left); printf("%d ",root->data); inorder(root->right); } int findmax(int x,int y) { return x>y?x:y; } int finddepth(struct node *root) { if(root==NULL) return 0; int ldepth=finddepth(root->left); int rdepth=finddepth(root->right); return 1+findmax(ldepth,rdepth); } void printlevel(struct node *root,int level,int flip) { if(root==NULL) return; if(level==0) printf("%d ",root->data); if(flip) { printlevel(root->left,level-1,flip); printlevel(root->right,level-1,flip); } else { printlevel(root->right,level-1,flip); printlevel(root->left,level-1,flip); } } void levelinspiral(struct node *root) { int depth=finddepth(root); //printf("depth is %d",depth); int level; int flip=1; for(level=0;level
PREVIOUS
NEXT
HOME