(New page: Shiyu Wang Lec28 April 27th typedef struct treenode { struct treenode *left; struct treenode *right; int value; }Node; Node* root=NULL; root=tree_insert(root,13); root=tree_inser...)
 
Line 35: Line 35:
 
   }
 
   }
 
   return n;
 
   return n;
 +
}
 +
 +
 +
 +
=====================================================================
 +
 +
Huayi Guo section-1 Professor Niklas lecture 28
 +
 +
*/
 +
#include<stdio.h>
 +
#include<stdlib.h>
 +
#include<string.h>
 +
 +
typedef struct TreeNode_t{
 +
  int value;
 +
  struct TreeNode_t *left, *right;
 +
}TreeNode;
 +
 +
TreeNode *Tree_create(int value)
 +
{
 +
  TreeNode *node = malloc(sizeof(Treenode));
 +
  node->value = value;
 +
  node->left = NULL;
 +
  node->right= NULL;
 +
   
 +
  return node;
 +
}
 +
 +
TreeNode *Tree_insert(TreeNode * node, int value)
 +
{
 +
    if(node == NULL) return TreeNode_create(value);
 +
    if(node->value >=value){
 +
    node->left = Tree_insert(node->left,value);
 +
}
 +
else
 +
    node->right = Tree_insert(node->right,value);
 +
    return node;
 +
}
 +
void *Tree_inorder(TreNode *node)
 +
{
 +
  if(node==NULL)return ;
 +
  Tree_inorder(node->left);
 +
  printf("%d\n",node->value);
 +
  Tree_inoder(node->right);
 +
}
 +
 +
void *Tree_preorder(TreNode *node)
 +
{
 +
  if(node==NULL)return node;
 +
  printf("%d\n",node->value);
 +
  Tree_inorder(node->left);
 +
  Tree_inoder(node->right);
 +
 
 +
}
 +
 +
TreeNode *Tree_search(TreeNode *node,int value)
 +
{
 +
  if(node == NULL)return NULL;
 +
  if(node->value ==)return node;
 +
  if(node->value < value)return Tree_search(node->left,value);
 +
  else return Tree_search(node->right,value);
 +
}
 +
 +
/*void *Tree_postorder(TreNode *node)
 +
{
 +
  if(node==NULL)return node;
 +
  Tree_inorder(node->left);
 +
  Tree_inoder(node->right);
 +
  printf("%d\n",node->value);
 +
}*/
 +
 +
 +
void Tree_destroy(TreNode *node)
 +
{
 +
    if(node==NULL)return;
 +
    Tree_destroy(node->left);
 +
Tree_destroy(node->right);
 +
free(node);
 +
}
 +
 +
int main(int argc, char *argv[])
 +
{
 +
    if(argc != 3){
 +
  return EXIT_FAILURE;
 +
 +
    FILE *f = fopen(argv[1],"r");
 +
if(f ==NULL){
 +
  return EXIT_FAILURE;   
 +
}
 +
 +
    int num;
 +
while(fscanf(f, "%d",&num) == 1){
 +
  root = Tree_insert(root, num);
 +
}
 +
    fclose(f);
 +
Tree_inorder(root);
 +
Tree_destroy(root);
 +
 +
return EXIT_SUCCESS;
 
}
 
}

Revision as of 02:37, 30 April 2012

Shiyu Wang Lec28 April 27th

typedef struct treenode {

 struct treenode *left;
 struct treenode *right;
 int value;

}Node;

Node* root=NULL;

root=tree_insert(root,13);

root=tree_insert(root,7);

root=tree_insert(root,22);

Node*Tree_insert(Node*n,int v) {

 if(n==NULL)
 {
   return Node_construct(v);
 }
 if((n->value)==v)
 {
   return n;
 }
 if((n->value)>v)
 {
   n->left=Tree_insert(n->left,v);
 }
 else
 {
   n->right=Tree_insert(n->right,v);
 }
 return n;

}


=========================================================

Huayi Guo section-1 Professor Niklas lecture 28

  • /
  1. include<stdio.h>
  2. include<stdlib.h>
  3. include<string.h>

typedef struct TreeNode_t{

  int value;
  struct TreeNode_t *left, *right;

}TreeNode;

TreeNode *Tree_create(int value) {

  TreeNode *node = malloc(sizeof(Treenode));
  node->value = value;
  node->left = NULL;
  node->right= NULL;
    
  return node;

}

TreeNode *Tree_insert(TreeNode * node, int value) {

    if(node == NULL) return TreeNode_create(value);
    if(node->value >=value){

node->left = Tree_insert(node->left,value); } else node->right = Tree_insert(node->right,value);

    return node;

} void *Tree_inorder(TreNode *node) {

 if(node==NULL)return ;
 Tree_inorder(node->left);
 printf("%d\n",node->value);
 Tree_inoder(node->right);

}

void *Tree_preorder(TreNode *node) {

 if(node==NULL)return node;
 printf("%d\n",node->value);
 Tree_inorder(node->left);
 Tree_inoder(node->right);
 

}

TreeNode *Tree_search(TreeNode *node,int value) {

 if(node == NULL)return NULL;
 if(node->value ==)return node;
 if(node->value < value)return Tree_search(node->left,value);
 else return Tree_search(node->right,value);

}

/*void *Tree_postorder(TreNode *node) {

 if(node==NULL)return node;
 Tree_inorder(node->left);
 Tree_inoder(node->right);
 printf("%d\n",node->value);

}*/


void Tree_destroy(TreNode *node) {

   if(node==NULL)return;
   Tree_destroy(node->left);

Tree_destroy(node->right); free(node); }

int main(int argc, char *argv[]) {

   if(argc != 3){

return EXIT_FAILURE; }

   FILE *f = fopen(argv[1],"r");

if(f ==NULL){ return EXIT_FAILURE; }

   int num;

while(fscanf(f, "%d",&num) == 1){ root = Tree_insert(root, num); }

    fclose(f);

Tree_inorder(root); Tree_destroy(root);

return EXIT_SUCCESS; }

Alumni Liaison

Ph.D. 2007, working on developing cool imaging technologies for digital cameras, camera phones, and video surveillance cameras.

Buyue Zhang