-
drowning in homework
ha ha, j/k i know everyone hates that!!!
but....this is a homework related question i posted a week or so ago and have been having a lot of trouble w/this, this is what i have so far w/the help that i've got...PLEASE!!! do NOT do this for me, i dont want that, i know i have to know this stuff and really want genuine help, if youre just gunna tell me to do it myself then just dont post.
im supposed to use these data structures and the function prototype given to me to create a linked list, this is what i have so far, i've looked at the tutorials n' stuff but im needing more help....i dont understand how im supposed to get things working, i know i'll have to parse through the string passed to me but other than that, the **headPP thing is really getting me? how do i get this linked list in motion
Code:
/*************DATA STRUCTURES******************/
// Encapsulates each entry in the phone book
struct PhoneEntry
{
// null-terminated string representing student name
char *name;
// null-terminated array representing student phone number
// in the format: XXX-XXXX
char number[9];
};
// Represents the structure of the phone book
struct PhoneBook
{
PhoneEntry data;
PhoneBook *next;
};
/****************FUNCTIONS******************/
void BuildPhoneBook(PhoneBook **headPP, const char *str)
{
PhoneBook *conductor;
const char array[1024] = str;
int i;
conductor = *headPP;
if(conductor != NULL)
{
while(conductor->next != NULL)
{
conductor = conductor->next;
}
}
if(array = str)
{
while(i != NULL)
{
array[i] = str;
if(array[i] = ' ')
{
conductor->data.name = array
}
++i;
}
}
}
sorry this was so long
-
Code:
1 void BuildPhoneBook(PhoneBook **headPP, const char *str)
2 {
3 PhoneBook *conductor;
4 const char array[1024] = str;
5 int j;
6
7 conductor = *headPP;
8
9 if(conductor != NULL)
10 {
11 while(conductor->next != NULL)
12 {
13 conductor = conductor->next;
14 }
15 }
16
17 if(array = str)
18 {
19 while(j != NULL)
20 {
21 array[j] = str;
22
23 if(array[j] = ' ')
24 {
25 conductor->data.name = array
26 }
27 ++j;
28 }
29
30 }
31}
- (1) what is str supposed to be?
- (4) if you want a copy of the pointer then drop the "[1024]", if you want to copy the array you have to use strcpy() or memcpy() or use an STL string which overloads the "=" operator.
- (7,9) good
- (11-14) traverse conductor to the last node in list - yep
- (16) conductor may be NULL here - you'll need to do something about it
- (17,23) assignment!!!!!!!! NOT comparison
- (19) j is an int, why are you comparing it to NULL?
I'm very confused with lines 17 - 30, but my guess is that str contains multiple items of data in it seperated by a space? Give a sample input for str.
As for building the list, if you are going to be adding new nodes to the list, there should be a call to new somewhere.
gg
-
A linked list usually has one structure/class. Maybe it'll have a head class and I think thats what you're trying to do with PhoneBook.
You see, you placed the *next in the wrong place. There is only one phone book (although you can make many of them) and it has a bunch of entries. What you're doing right now is having multiple books and each book having one entry. That just doesn't make any sense unless your assignment told you explicity to do that.
I think it should be:
Code:
/*************DATA STRUCTURES******************/
// Encapsulates each entry in the phone book
struct PhoneEntry
{
// null-terminated string representing student name
char *name;
// null-terminated array representing student phone number
// in the format: XXX-XXXX
char number[9];
// the next entry in our book
PhoneEntry *next;
};
// Represents the structure of the phone book
// ***This isn't really needed...
struct PhoneBook
{
PhoneEntry *first;
// ...other data here, if any...
};
Second, just like CodePlug, I'm very confused with those ending lines in your function. First of, since I'm not sure what you're trying to do, let me point something out. Here you declare this variable: int j; Later you use it: while(j != NULL) ++j; In C++ variables don't default to 0. If you want j to be zero from the begining, you should: int j=0;
Plus, j!=NULL is the same thing as j!=0 so......
*****
Tell us EXACTLY what you're assignment said and what that function is supposed to do and we'll be more helpful.
*****
-
Have you tried to ask your instructor for some guidance??