Másolás fa
b = GetTreeNode ( 'B', NULL, d);
c = GetTreeNode ( 'C', e, NULL);
a = GetTreeNode ( 'A', B, C);
Először létrehozunk egy fia D, amelyet ezután csatlakozik a szülő B, amikor létrehoz egy csomópontot. Alkotó csomópont E és C csatlakozik a szülei a születési időt (vagy teremtés) az utóbbi. Végül, létrehoz egy gyökér, és csatlakozik az ő fiai a B és C
Fa algoritmus másolás kezdődik a gyökér és elsősorban konstrukciók bal részfa a csomópontra, majd - a jobb részfa. Csak azután, hogy egy új csomópont. Ugyanez a rekurzív folyamat ismétlődik minden egyes csomóponthoz. Ennek megfelelően, a csomópont a forrás fa t hoz létre egy új csomópont mutatók és newlptr newrptr.
Az ellenkező átviteli eljárás Sons látogatott, mielőtt szüleik. Ennek eredményeképpen egy új fát hoz létre részfák megfelelő T-> Bal () és a t-> Jobb (). Sons csatlakozzon szüleik idején létrehozása az utóbbi.
// létrehozni szülő, és csatolja hozzá az ő fiai
newnode = GetTreeNode (t-> adatok, newlptr, newrptr);
A lényege a látogató csomópont t a forrásfába teremt egy új csomópont a fa-két példányban.
TreeNode
MakeCharTree (root1, 0); // root1 jelzi Tree_0
Pass leszármazottai egy csomópont egy, a bal oldali részfa (B csomópont, majd a D csomópontot, amely egy jobb részfáját B csomópont). Hozzon létre egy új csomópont adatokkal megegyező D, a bal és a jobb mutatókat egyenlő NULL.
Node B telt fia. Hozzon létre egy új csomópont adatai megegyeznek a B, a bal index egyenlő NULL, a jobb mutatót a másolatot a csomópont D.
Mivel csomópont bal részfa elkészült, kezdjük a jobb részfa folyosón, és eléri a csomópont E. hozzon létre egy új csomópont az adatokat a csomópont E és a mutató területeken egyenlő NULL.
A feldolgozás után, E megy a szüleinek, hogy hozzon létre egy új site adataival C. A jobb mezőben, hogy a mutató NULL, és a bal mutató rendelhet linket egy példányát a gyermek csomópont E.
// Létrehozunk egy példányban a fa t, és visszatér a gyökere egy új fát
sablon
// Változó newnode jelzi az új csomópont jön létre
// keresztül Hívás GetTreeNode illeszthetők és
// a jövőben az új fa.
// csomópont és paraméterként adja át GetTreeNode
TreeNode
// megállítani az áramlást, ha a rekurzív
// csomópontja t. minden egyes csomópontnál a fa funkció
// Létrehozunk egy másolatot. Különben visszaküldi
// és leteszi őt fia.
if (t-> Bal ()! = NULL)
if (t-> Jobb ()! = NULL)
// egy új fa alulról felfelé, ami az első
// két fia, majd a szülő
newnode = GetTreeNode (t-> adatok, newlptr, newrptr);
// visszatér egy pointert az újonnan létrehozott fa