Difference between revisions of "Implementação do ADT Tabela de Símbolos (BST)"

From Wiki**3

(Outras Funções do ADT)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Dependências da implementação do ADT tabela de símbolos baseado em BSTs. A árvore está ancorada em <code>head</code> e as folhas são nós vazios (representados por <code>z</code>): assim, os algoritmos apenas manipulam nós internos da árvore.
+
Dependncias da implementação do ADT tabela de símbolos baseado em BSTs. A árvore está ancorada em <code>head</code> e as folhas são nãs vazios (representados por <code>z</code>): assim, os algoritmos apenas manipulam nós internos da árvore.
  
 
   #include <stdlib.h>
 
   #include <stdlib.h>
Line 28: Line 28:
 
== Outras Funções do ADT ==
 
== Outras Funções do ADT ==
  
* <code>STinsert</code> -  
+
* <code>STinsert</code> - [[Inserção numa BST|inserção]] de um elemento na tabela de símbolos
* <code>STsearch</code> - [[Procura numa BST|pesquisa um elemento dada a sua chave]]
+
* <code>STsearch</code> - [[Procura numa BST|pesquisa]] um elemento dada a sua chave
 
* <code>STdelete</code> -  
 
* <code>STdelete</code> -  
* <code>STselect</code> - [[Selecção da k-ésima Menor Chave (BST)|selecção da k-ésima menor chave]]
+
* <code>STselect</code> - [[Selecção da k-ésima Menor Chave (BST)|selecção]] da k-ésima menor chave
 
* <code>STsort</code> -
 
* <code>STsort</code> -

Latest revision as of 11:06, 12 November 2008

Dependncias da implementação do ADT tabela de símbolos baseado em BSTs. A árvore está ancorada em head e as folhas são nãs vazios (representados por z): assim, os algoritmos apenas manipulam nós internos da árvore.

 #include <stdlib.h>
 #include "Item.h"
 
 typedef struct STnode* link;
 struct STnode { Item item; link l, r; int N };
 static link head, z;

Criação de um Novo Elemento

Esta função não faz parte da interface do ADT. A ideia subjacente é isolar procedimentos repetitivos da criação de novas entradas da BST.

 link NEW(Item item, link l, link r, int N) {
   link x  = (link)malloc(sizeof *x); 
   x->item = item;
   x->l    = l;
   x->r    = r;
   x->N    = N;
   return x;
 }

Funções Básicas do ADT

 void STinit()  { head = z = NEW(NULLitem, 0, 0, 0); }
 int  STcount() { return head->N; }

Outras Funções do ADT

  • STinsert - inserção de um elemento na tabela de símbolos
  • STsearch - pesquisa um elemento dada a sua chave
  • STdelete -
  • STselect - selecção da k-ésima menor chave
  • STsort -