Sunteți pe pagina 1din 6

a) Reprezentarea grafului sub forma de liste generalizate:

A(B(E,F(J,K)),C(G,H(L,M)),D(I(N))) cu urmatoarea reprezentare:

1 1 1 0

B C D

0 E 1 0 0 G 1 0 1 0

F H I

0 J K 0 0 L M 0 N 0
struct GElement{
char tag; // eticheta
union { // data poate f
char A; // Atom
GElement* L; // sau pointer spre un alt element
} data;
GElement* link; // legatura cu alt element
// Constructor implicit
GElement(){ this->data.L=NULL; link=NULL;}
};
b) Reprezentarea grafului sub forma de Structuri inlantuite, model
succesor:

B C D
0 0 0 0

E F G H I
0 0 0 0 0 0 0 0 0 0

J K L M N
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
struct Struct{
char data; //valoarea elementului din structura data
Struct *link1;// pointerul spre copilul sting
Struct *link2;// pointerul spre copilul din mijloc
Struct *link3;// pointerul spre copilul din dreapta
Struct *parent;//pointerul spre parinte
//constructor pentru crearea unui nou element
Struct(char i,Struct *n=NULL,int f=0){data=i; parent=n;link1=link2=link3=NULL;
if(parent!=NULL){
switch(f){
case 1: {parent->link1=this;} break;
case 2: {parent->link2=this;} break;
case 3: {parent->link3=this;} break;
default: { cout<<"Elementul "<<i<<"nu poate f inserat in pozitia
dorita!"<<endl; }break;
}
}
}
};
c) Reprezentarea grafului sub forma de Lista inlantuita, model
predecessor TATA:

A 0

B C D

E F G H I

J K L M N
struct ListItem{
char data; //valoarea elementului din
lista
ListItem *parent;// pointerul la parintele
elementului curent
//constructor pentru crearea unui nou
element
ListItem(char i,ListItem *n=NULL)
{data=i; parent=n;}
};

S-ar putea să vă placă și