#include #include struct node{ int k; struct node* prev; struct node* ls; struct node* ps; }; struct node *dodaj_element(struct node *root, struct node* nowy); int main(){ struct node *root=NULL; struct node *nowy=NULL; root=dodaj_element(root,1); root=dodaj_element(root,2); root=dodaj_element(root,3); } struct node *dodaj_element(struct node *root, int n) {if(root==NULL) {root=(struct node*)malloc(sizeof(struct node)); root->k=n; root->prev=NULL; root->ls=NULL; root->ps=NULL; } else if(n< (root->k)) {if(root->ls!=NULL) dodaj_element(n,root->ls); } else{ struct node *nowy = NULL; nowy=(struct node*)malloc(sizeof(struct node)); nowy->k = n; nowy->ls= NULL; nowy->ps = NULL; nowy->prev = root; root->ls=nowy; } } else{ if(root->ps!=NULL) { dodawanie(n,root->ps); } else{ node *nowy = (node*)malloc(sizeof *node); nowy->k = n; nowy->ls = NULL; nowy->ps = NULL; nowy->prev = start; root->ps=nowy; } } return root; } void in_order(struct node *root) { if(root->ls != NULL) in_order(root->ls); printf("%dn", root->k); if(root->ps!= NULL) in_order(root->ps); }