Kezdőoldal » Számítástechnika » Programozás » Bináris fa statikus és dinamik...

Bináris fa statikus és dinamikus megvalósításra lenne szükségem Pascal és C nyelven?

Figyelt kérdés

google - főleg Pascal bináris fa esetén - nem volt túl meggyőző...

Statikus és dinamikus megvalósítás érdekelne, valamint az, hogy mikor kiegyensúlyozott egy bináris fa és mikor nem...

Könyv is érdekelne, ahol a kezdetektől (rendezések, láncolt lista, stb) bemutatnak és végigmennek mindenen, ami a programozáshoz kellhet és természetesen a bináris fa is szerepelne benne.

Érdekelne az is, ha valakinek megvannak kidolgozva ezek az adatszerkezetek és valamilyen módon meg szeretné osztani velem.



2016. jan. 10. 08:33
 1/2 anonim ***** válasza:

typedef struct fa_elem { /* a fa egy eleme */

int szam; /* tárolt szám */

int hanyszor; /* elofordulási szám */

struct fa_elem *jobb; /* jobb mutató */

struct fa_elem *bal; /* bal mutató */

} FA_ELEM;



FA_ELEM *faepit(FA_ELEM *p, int n)

{

if (p == NULL) {

if ((p = (FA_ELEM*)malloc(sizeof(FA_ELEM))) == NULL) /* uj elem */

return(NULL); /* baj van !! */

p->szam = n;

p->hanyszor = 1;

p->bal = p->jobb = NULL;

} else if (n < p->szam) {

p->bal = faepit(p->bal, n); /* bal részáfaban tovább */

} else if (n > p->szam) {

p->jobb = faepit(p->jobb, n); /* jobb részfában tovább */

} else {

p->hanyszor++; /* számláló növelése */

}

return(p);

}

2016. jan. 10. 08:45
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

TYPE

KeyType = Integer; (* the type of key in Info part *)


TreeElementType = RECORD (* the type of the user's data *)

Key : KeyType;

(* other fields as needed. *)

END; (* TreeElementType *)


TreePtrType = ^TreeNodeType;


TreeNodeType = RECORD

Info : TreeElementType; (* the user's data *)

Left : TreePtrType; (* pointer to left child *)

Right : TreePtrType (* pointer to right child *)

END; (* TreeNodeType *)


TreeType = TreePtrType;


TraversalType = (Preorder, Inorder, Postorder);


(******************************************************)


PROCEDURE CreateTree

(VAR Tree : TreeType);


(* Initializes Tree to empty state. *)


BEGIN (* CreateTree *)

Tree := NIL

END; (* CreateTree *)


(*************************************************)


PROCEDURE FindNode

( Tree : TreeType;

KeyValue : KeyType;

VAR NodePtr : TreePtrType;

VAR ParentPtr : TreePtrType);


(* Find the node that contains KeyValue; set NodePtr to *)

(* point to the node and ParentPtr to point to its parent; *)


VAR

Found : Boolean; (* KeyValue found in tree? *)


BEGIN (* FindNode *)


(* Set up to search. *)

NodePtr := Tree;

ParentPtr := NIL;

Found := False;


(* Search until no more nodes to search or until found. *)

WHILE (NodePtr <> NIL) AND NOT Found DO

IF NodePtr^.Info.Key = KeyValue

THEN Found := True


ELSE (* Advance pointers. *)

BEGIN

--------------------------


Többi itt (de swag-ban van ennél jobb implementáció is):

[link]

2016. jan. 10. 19:50
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!