0

I need help with a program that is supposed to take data on football players from a txt file and place them in a binary search tree then use case statements to t osearch the tree inorder, preorder and postorder recursively

here's what i got so far

/* Bradley Koperski
   CIS 126
   Project 9
*/

/* This program reads football statistics of players on the Chicago Bears from a 
   text files and disblay the desired information via a numbered menu system. 
*/

#include<stdio.h>
#include<string.h>
# define TYPED_ALLOC(type) (type *)malloc(sizeof (type)
/* define player structure */
typedef struct player
{
char team[3];        
int number, passyards, rushyards, recpyards, passTD, rushTD, recpTD, receptions;
char fname[30]; 
char lname[30];
char pos[4];     
char wname[60];
} playerdata;

typedef struct tree_node_s
{
        char key;
        struct tree_node_s *leftptr, *rightptr;
} tree_node_t;


void *tree_insert(tree_node_t *rootp , char new_key);
void tree_inorder(tree_node_t *rootp);

int
main(void)
{
          FILE *fptr;
          tree_node_t *bstreep; /* Binary Search Tree */
          playerdata data_key;
          bstreep = NULL;
    
      if ((fptr = fopen("C:/Documents and Settings/Owner/Desktop/Jason/C programing/assignment6/assignment6data.txt", "r")) == NULL) 
     { printf("Error: the file cannot be opened\n");
     }
     else
     fscanf(fptr, "%s %s %s %s %s", &data_key.team, &data_key.number, 
     &data_key.fname, &data_key.lname);
      strcpy(data_key.wname, data_key.lname);
 strcat(data_key.wname, ", ");
 strcat(data_key.wname, data_key.fname);
 bstreep = tree_insert(bstreep, data_key.wname);
}          


/* Fill Search tree */
tree_node_t *treeinsert(tree_node_t *rootp, char new_key) 
 {
 if (rootp==NULL)
 {
  rootp = TYPED_ALLOC(tree_node_t);
  strcpy(rootp->key,new_key);
  rootp->leftp = NULL;
  rootp_>rightp = NULL
}

else if (new_key == rootp->key)
{
 }
 /* Insert in left subtree */
 else if (strcmp(new_key ,rootp->key))<0)                      
 {
   rootp->leftp = treeinsert(rootp->leftp, new_key);
} /* End Insert */

/* Insert in right subtree */
else
{   
 rootp->rightp = treeinsert(rootp->rightp, new_key);
} /* End Insert */

return (rootp);
}
/* End treeinsert */

i keep getting an error when calling the treeinsert function that says
51 C:\Documents and Settings\Owner\My Documents\BRADLEY\Programming C\Brad Project 9\Brad assign 9.c [Warning] passing arg 2 of `tree_insert' makes integer from pointer without a cast

which doesn't make sense because the function only uses characters

someone please help me out

2
Contributors
1
Reply
3
Views
6 Years
Discussion Span
Last Post by Narue
0

Addressing the error only (there are other issues), you're passing wname, which is an array of char. The function expects only a single char, not an array of them.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.