Moin Moin,
ich habe folgende Struktur:
Also ein Baum, wo jeder Knoten n-Viele Kinder hat. Jetzt möchte ich das Ding zeichnen, komm aber in meinen Gedanken nicht weiter. Eine verkettete Liste zu Zeichen hat bereits geklappt, dort muss nan nur gucken ob es einen Nachfolger gibt, wenn ja, diesen Ausgeben und so weiter, nur bei so einem Baum?
Hier nochmal wie ich die Liste ausgegeben hab:
Viele Grüße
ich habe folgende Struktur:
Code:
typedef struct baum
{
char szName[100]; // speichert den Namen.
baum *pnaechster[n]; //Zeigt auf einen der Kinder
baum *pvorgaenger; // Zeiger auf den Vorgänger.
}baum;
class clTreeStruct
{
public://Methoden
clTreeStruct(void);
~clTreeStruct(void);
void AddItem(char *name);
char *GetBack(void);
baum *anker;
baum *pWorker;
};
Also ein Baum, wo jeder Knoten n-Viele Kinder hat. Jetzt möchte ich das Ding zeichnen, komm aber in meinen Gedanken nicht weiter. Eine verkettete Liste zu Zeichen hat bereits geklappt, dort muss nan nur gucken ob es einen Nachfolger gibt, wenn ja, diesen Ausgeben und so weiter, nur bei so einem Baum?
Hier nochmal wie ich die Liste ausgegeben hab:
Code:
void CPhytreeView::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect Recto;//Die Area wo das drin ist
CPen PenBlack;//Farbe!?
PenBlack.CreatePen(PS_SOLID, 1, BLACK_PEN);
dc.SelectObject(&PenBlack);
GetClientRect(&Recto[0]);
//Bereich fürn Baum
int y = 10;
Recto.top = y;
Recto.left = 10;
Recto.bottom = 400;//Graphisch Clippen
Recto.right = 400;
if(objTree.anker != NULL)
{
char *pErster = objTree.anker->szName;//ersten Zeichnen lassen.
DrawText(dc,pErster,strlen(pErster),&Recto,DT_LEFT);
//Rest zeichnen lassen.
objTree.pWorker = objTree.anker;
while(objTree.pWorker->pnaechster[0] != NULL)
{
Recto.top = y+20;
objTree.pWorker = objTree.pWorker->pnaechster[0];
char *pName = objTree.pWorker->szName;
DrawText(dc,pName,strlen(pName),&Recto,DT_LEFT);
y +=20;
}
}
}
Viele Grüße