Advertisement
Guest User

yuhboi

a guest
Nov 23rd, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.46 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct studentRec{
  6.     int id;
  7.     char name[25];
  8.     char major[15];
  9.     int year;
  10. }studentRec;
  11.  
  12. typedef struct node{
  13.     studentRec info;
  14.     struct node* right;
  15.     struct node* left;
  16. }node;
  17.  
  18. FILE* input;
  19.  
  20. node* initBST();
  21. int search(node* top, int id);
  22. node* addNode(node* top, int id, char* name, char* major, int year);
  23. node* updateStudent(node* top, int id, int newId);
  24. node* deleteStudent(node* top, int id);
  25. void print(node* top);
  26. void printFrom(node* top);
  27. node* insertNode(node* top, node* newNode);
  28.  
  29. int main()
  30. {
  31.     int choice=1, id=0, newId=0;
  32.  
  33.     node* top = initBST();
  34.  
  35.     while(choice!=0){
  36.         printf("Please select and action from the following menu\n");
  37.         printf("2 - Search\n3 - Add\n4 - Update\n5 - Delete\n6 - Print\n7 - Print From\n0 - Exit\n");
  38.         scanf("%d",&choice);
  39.  
  40.         switch (choice){
  41.             case 2:
  42.                 printf("Enter ID to search: ");
  43.                 scanf("%d", &id);
  44.                 search(top, id);
  45.                 break;
  46.             case 3:
  47.  
  48.             case 4:
  49.                 printf("Enter student current ID: ");
  50.                 scanf("%d", &id);
  51.                 printf("Enter student's new ID: ");
  52.                 scanf("%d", &newId);
  53.                 break;
  54.             case 5:
  55.                 printf("Enter ID to delete: ");
  56.                 scanf("%d", &id);
  57.                 deleteStudent(top, id);
  58.                 break;
  59.             case 6:
  60.                 print(top);
  61.                 break;
  62.             case 7:
  63.                 printFrom(top);
  64.                 break;
  65.             case 0:
  66.                 break;
  67.             default:
  68.                 printf("invalid Selection\n");
  69.  
  70.         }
  71.     }
  72.     return 0;
  73. }
  74.  
  75. node* initBST(){
  76.  
  77.     node* top=NULL;
  78.     input = fopen("input.txt", "r+");
  79.  
  80.     int id = -1, year=0;
  81.     char name[25], lName[25], major[15];
  82.  
  83.     while(!feof(input)){
  84.         fscanf(input, "%d ", &id);
  85.         if(id==0)
  86.             break;
  87.         fscanf(input, "%s %s %d", name, lName, &year);
  88.         strcat(name, lName);
  89.         addNode(top, id, name, major, year);
  90.     }
  91.     fclose(input);
  92. }
  93.  
  94. int search(node* top, int id){
  95. }
  96.  
  97.  
  98. node* addNode(node* top, int id, char* name, char* major, int year){
  99.  
  100.     node* tempNode = (malloc(sizeof(node)));
  101.     tempNode->info.id = id;
  102.     strcpy(tempNode->info.name, name);
  103.     strcpy(tempNode->info.major, major);
  104.     tempNode->info.year = year;
  105.  
  106.     node* tempPtr = top;
  107.  
  108.     insertNode(tempPtr, tempNode);
  109.  
  110. }
  111.  
  112. node* insertNode(node* top, node* newNode){
  113.     if(top==NULL){
  114.         top=newNode;
  115.     }
  116.     if(newNode->info.id > top->info.id){
  117.         if(top->right==NULL){
  118.             top->right = newNode;
  119.         }
  120.         else{
  121.             top = top->right;
  122.             insertNode(top, newNode);
  123.         }
  124.  
  125.     }
  126.     if(newNode->info.id < top->info.id){
  127.         if(top->left==NULL){
  128.             top->left = newNode;
  129.         }
  130.         else{
  131.             top = top->left;
  132.             insertNode(top, newNode);
  133.         }
  134.  
  135.     }
  136.     return top;
  137. }
  138.  
  139. node* updateStudent(node* top, int id, int newId){
  140. }
  141. node* deleteStudent(node* top, int id){
  142. }
  143.  
  144. void print(node* top){
  145.     if (top != NULL) {
  146.             printf("no");
  147.       print(top->left);
  148.       printf("%d %s %s %d\n", top->info.id, top->info.name, top->info.major, top->info.year);
  149.       print(top->right);
  150.    }
  151. }
  152. void printFrom(node* top){
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement