Binärbaum kopieren < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Kopieren sie einen Binärbaum ohne den aktuellen knoten. Die Orginalbäume sollen erhalten bleiben. Es soll eine Funktion der Form copy(zeiger p, zeiger *cp) werden. Programmiersprache C. |
Ich habe hier mal einen Vorschlag. Könntet ihr euch den mal anschauen bitte und sagen ob das so geht oder verbesserungsvorschläge machen. Danke schön
#include<stdio.h>
#include<stdlib.h>
#include"baum.h"
#include"aktion.h"
static void copy(zeiger p, zeiger *cp)
{
zeiger cp1, cp2;
knoten k;
if (p==NULL)
{
*cp=NULL;
}
else
{
*cp=p;
k=(zeiger)malloc(sizeof(knoten));
k.element=p->element;
k.links=copy(p->links,&cp1);
k.rechts=copy(p->rechts,&cp2);;
}
}
void konstruiere(binaerbaum bb1, binaerbaum bb2, element_typ e1, binaerbaum *bb)
{
zeiger bb3, bb4;
erzeugen(bb);
bb->aktuell->element=e1;
copy(bb1.wurzel, &bb3);
copy(bb2.wurzel, &bb4);
bb->aktuell->links=bb3;
bb->aktuell->rechts=bb4;
}
typedef int element_typ;
typedef struct satz * zeiger;
typedef struct satz {
element_typ element;
zeiger links, rechts;
} knoten;
typedef struct {
zeiger wurzel, aktuell;
} binaerbaum;
Danke schön
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Do 31.05.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|