Fórum Editor de Texto em C usando Lista Duplamente Encadeada #61332
27/05/2003
0
Preciso de um Editor de Texto com seus fontes em C++, usando Lista Duplamente Encadeada, não tenho ideia como fazer, e por isso preciso para poder aprender... Se alguém tiver e puder me mandar os fontes ou me indicar algum site.
Desde já muito obrigado.
Desde já muito obrigado.
Edusgouveia
Curtir tópico
+ 0
Responder
Posts
17/12/2003
Flavio Sanches
ola, nao sei em que parte do editor de texto vc usara a lista duplamente encadeada. mas ai vai a teoria
uma lista encadeada e uma estrutura q aponta para outra estrutura do seu proprio tipo no caso de uma duplamente encadeada, ele deve apontar para a proxima estrutura da lista e para a anterior
a estrutura se define assim por exemplo:
struct lista
{
char data; // a informacao este no guarda
struct lista *proxima, *anterior;
}; typedeff struct lista lista;
e geralmente vc tem um no principal q vem antes de todos, este geralmente guarda os ponteiros do primeiro e do ultimo no da lista por exemplo
struct pai
{
int numero_de_nos;
lista *primeiro;
lista *ultimo;
} typedef struct pai pai;
logo basta vc alocar memoria, seja com malloc ou GlobalAlloc (caso seja em windows)
e passar a area de memmoria pra estrutura pra criar um novo no;
lista *nova;
// isso cria uma nova lista
nova = (char *) GloballAlloc(GPTR,sizeof(struct lista));
// atualiza o numero de nos
pai.numero_de_nos++;
// entao vc checa pra ver se a lista estiver vazia a primeira e a ultima posicao serao iguais logo:
pai.primeiro = pai.ultimo = &
// caso nao seja vc so ira acrescentar um no a ultima posicao assim:
nova->anterior = &pai.ultima;
nova->proximo = NULL; // isso evita dires de cabeca !
pai.ultima = &
e mais ou menos isso!
um abraco.
uma lista encadeada e uma estrutura q aponta para outra estrutura do seu proprio tipo no caso de uma duplamente encadeada, ele deve apontar para a proxima estrutura da lista e para a anterior
a estrutura se define assim por exemplo:
struct lista
{
char data; // a informacao este no guarda
struct lista *proxima, *anterior;
}; typedeff struct lista lista;
e geralmente vc tem um no principal q vem antes de todos, este geralmente guarda os ponteiros do primeiro e do ultimo no da lista por exemplo
struct pai
{
int numero_de_nos;
lista *primeiro;
lista *ultimo;
} typedef struct pai pai;
logo basta vc alocar memoria, seja com malloc ou GlobalAlloc (caso seja em windows)
e passar a area de memmoria pra estrutura pra criar um novo no;
lista *nova;
// isso cria uma nova lista
nova = (char *) GloballAlloc(GPTR,sizeof(struct lista));
// atualiza o numero de nos
pai.numero_de_nos++;
// entao vc checa pra ver se a lista estiver vazia a primeira e a ultima posicao serao iguais logo:
pai.primeiro = pai.ultimo = &
// caso nao seja vc so ira acrescentar um no a ultima posicao assim:
nova->anterior = &pai.ultima;
nova->proximo = NULL; // isso evita dires de cabeca !
pai.ultima = &
e mais ou menos isso!
um abraco.
Responder
Gostei + 0
17/12/2003
Flavio Sanches
obs:
&nova
e
&nova
onde so saiu & aki em cima!
desculpe!
&nova
e
&nova
onde so saiu & aki em cima!
desculpe!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)