keine passende Konvertierung von node zu node vorhanden

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
latrellvie
Beiträge: 4
Registriert: Sa Aug 10, 2013 3:32 pm

keine passende Konvertierung von node zu node vorhanden

Beitrag von latrellvie » Sa Aug 10, 2013 3:47 pm

Hi hier gehta um Nodeneinfügug in einen binären Baum; Unter Visual Studio erhalte ich in der vorletzten Zeile -printTreeInline (firstnode);- die Fehlermeldung Error: Es ist keine passende Konvertierung von node zu node vorhanden. Was mache ich falsch ? Danke für eure Hilfe !!!!!!

Code: Alles auswählen

/* Algorithmen und Datenstrukturen Uebung 5 */
#include
<stdio.h>
#include
<stdlib.h>
  
// Globale Variablen und Typdefinitionen
typedef
struct node_ 
{

int key; 

char *data;

struct node_ *left; 

struct node_ *right;
} node;
typedef
struct biTree_ {

int size;
node *root;
} biTree;
 
// Funktionsprototypen
node *insertNode(node *, 
int , char *);
node *insert(biTree *, 
int, char *);
void
printTreeInline (node *);
void
printTreeLevelOrder (node *); 
node *lookup (node *, 
int);
int
treeDepth (node *);
 
// Funktionen
node *insert(biTree *t, 
int key, char *data)
{
node *newNode;
newNode = insertNode(t->root,key,data);

if(t->root == NULL)
{
t->root = newNode;
}

if(newNode != NULL)
{
t->size++;
}

return newNode;
}
node *insertNode(node *start, 
int key, char *data)
{
node *newNode = NULL;

if(start == NULL)
{

//Es gibt noch kein Wurzelelement;(root)
newNode = (node *)malloc(
sizeof(node));

if(newNode != NULL)
{
newNode->data = data;
newNode->key = key;
newNode->right = newNode->left = NULL;
}
}

else
{

if(key < start->key)
{
printf(
"<\n");
newNode = insertNode(start->left,key,data);

if(start->left == NULL)
{
start->left = newNode;
}
}

elseif(key > start->key)
{
printf(
">\n");
newNode = insertNode(start->right,key,data);

if(start->right == NULL)
{
start->right = newNode;
}
}

else
{
printf(
"Key %i ist schon vorhanden\n",key);
}
}

return newNode;
}
void
printTreeInline (node *start)
{

if(start != NULL)
{
printTreeInline(start->left);
printf(
"Ausgabe Key %i \n",start->key);
printTreeInline(start->right);
}
}


 
// Hauptprogramm
int
main(void)
{

// Variablen fuer den Baum anlegen

int Personalnumber = 0;

char Name[25] = {0};
biTree firstTree = { 0, NULL };
node firstnode ={ 0,NULL,NULL,NULL};


// Einlesen mehrerer Datensaetze von der Tastur
printf(
"Please insert Personalnumber and Name : ");
scanf(
"%i %s", &Personalnumber, Name);
firstnode.key = Personalnumber;
firstnode.data = Name;

 

// und Einfügen in den Baum mittels insert()
insert(&firstTree,Personalnumber, Name );
 
 
 
 


// Ausgabe des Baumes in Inline-Notation
printTreeInline (firstnode);
// getchar();





return 0;
}

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: keine passende Konvertierung von node zu node vorhanden

Beitrag von cloidnerux » Sa Aug 10, 2013 4:03 pm

Hi und Willkommen im Forum.
Hi hier gehta um Nodeneinfügug in einen binären Baum; Unter Visual Studio erhalte ich in der vorletzten Zeile -printTreeInline (firstnode);- die Fehlermeldung Error: Es ist keine passende Konvertierung von node zu node vorhanden. Was mache ich falsch ? Danke für eure Hilfe !!!!!!
Deine Funktion erwartet einen Pointer, du gibst ihm ein Struct Ein & vor dem firstnode wird helfen.

Einige Anmerkungen:
Bitte achte auf sinnvolle Sätze, strukturiere deinen Beitrag und mach Gebrauch herkömmlicher Satzzeichen. Man möchte dir gerne helfen, aber man möchte nicht vorher erst übersetzen müssen.
Dein Code ist sehr sehr unstrukturiert und mit jeder menge unnötiger Umbrechungen ausgestattet. Ich bezweifle, dass VS das so formatiert und würde dich daher auch bitten, dir bei Gelegenheit Code-Style Richtlinien anzuschauen.
Zudem versuche deinen Code, sofern es dir möglich ist, auf das Notwendigste zu beschränken. Hier z.B wären nur die Funktionsprototypen und die main wichtig gewesen.

MfG cloidnerux.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten