Pular para o conteúdo principal

Estrutura de Dados

Baixe aqui - Estrutura de dados Usando C.

Matéria Estrutura de Dados - 3º Sistemas de Informação.


Estrutura de dados
Prof : Daniel.

Conceito 

Estrutura de dados e algoritmos estão intimamente ligados, não se pode estudar estrutura de dados sem considerar o algoritmo associado, a elas assim como a escolha de algoritmos em geral depende da representação e da estrutura dos dados.  Para resolver um problema é necessário escolher uma abstração da realidade, em geral mediante a definição de um conjunto que representa a situação real.  A segunda a ser escolhida é a forma de representar esse dado.
A escolha da representação do dado é determinada entre outras, pelas operações a serem realizadas sobre os dados.  Considere a operação de adição.  Para pequenos números, uma boa representação é por meio de barras verticais caso em que a operação de adição é bastante simples.  Já a representação por dígitos decimais requer regras relativamente  complicadas, as quais devem ser memorizadas.  Entretanto a situação se inverte quando consideramos a adição de grandes números, sendo mais fácil a representação por dígitos decimais, devido ao princípio baseado no peso relativo da posição de cada dígito.  Programar é basicamente estruturar dados e construir algoritmos.  De acordo com wuth (1976, XII), programar são formulações concretas de algoritmos abstratos, baseada em representações e estruturas específicas de dados.  Em outras palavras, programas representam classe especial de algoritmos  capazes de serem seguidos por computadores.
Entretanto um computador só é capaz de seguir um programa em linguagem de máquina, que correspondem a uma seqüência de instruções obscuras e desconfortáveis.  Para contornar tal problema é necessário construir linguagens mais adequadas, que facilitam a tarefa de programar um computador.  Segundo Dijkstra (1976), uma linguagem de programação é uma técnica de notações para programar, com a intenção de servir de veículo tanto para a expressão do raciocínio algorítmico quanto para a execução automática de um algoritmo por um computador.

ESTRUTURA BÁSICA DE DADOS

·         Listas lineares

- Implementações de listas por meios de arranjos.

- Implementações de listas por meios de ponteiros.

·         Pilhas

- Implementações de pilhas por meios de arranjos.

- Implementações de pilhas por meios de ponteiros.

·         Filas.

- Implementações de Filas por meios de arranjos.

- Implementações de Filas por meios de ponteiros.

Listas lineares.

Uma das formas mais simples de interligar os elementos de um conjunto é por meio de lista.  Lista é uma estrutura em que as operações inserir retirar e localizar são definidas.  Listas são estruturas muito flexíveis, porque podem crescer sem diminuir de tamanho durante a execução de um programa, de acordo com a demanda.  Itens podem ser acenados, inseridos ou retirados de uma lista.  Duas listas podem ser concatenadas para formar uma lista única, assim como uma lista pode ser parte de duas ou mais listas.
Listas são adequadas para aplicações nas quais não é possível prever a demanda de memória, permitindo a manipulação de quantidades imprevisíveis de dados, de formato também imprevisível.
Listas são úteis em aplicações  tais como manipulação simbólica, gerencia de memória, simulação e compiladores.  Na manipulação simbólica,  as temos de uma fórmula podem crescer sem limites .
Em simulação dirigida por relógios, pode ser criado um número imprevisível de processos, os quais tende ser escalonado para execução de acordo com alguma ordem predefinida.
Uma lista linear é uma sequencia de zero ou mais itens X1, X2, na qual X1 é de um determinado tipo e N representa o tamanho da lista linear.  Sua principal prioridade estrutural envolve as posições relativas doa itens e uma dimensão assumindo n>=1, X1 é o primeiro item da lista e Xn é o último item da lista.  Em geral geral, Xi precede Xi+1 para i=1,2..., n1, o Xi sucede xi-1 para i=2,3...n, e o elemento Xi é dito na i - ésima posição da lista.

Pilhas

Existem aplicações para listas lineares nas quais inserções, retiradas e acessos a itens ocorrem sempre em um das extremos da lista.  Uma pilha é uma lista linear em que todas as inserções, retirada e, geralmente todos os acessos são feitos em apenas um extremo da lista.
Os itens em uma pilha são colocados um sobre o outro com um item inserido mais recentemente no topo e o item inserido menos recentemente no fundo.  O modelo intuitivo de uma pilha é o de um monte de pratos em um prateleira, sendo conveniente retirar pratos ou adicionar novos na parte superior esta imagem está frequentemente associada com uma teoria de autômato , na qual o topo de uma pilha é considerado como o receptáculo de uma cabeça da leitura/gravação que pode empilhar e desempilhar itens a pilha (“ choft e Ulman, 1969”).
As pilhas possuem a seguinte propriedade: o último item inserido é o primeiro item que pode ser retirado da lista.  Por esta razão, as pilhas são chamadas de lista LIFO, termo formado a partir de “ last-in, first-out”.  “Existe uma ordem linear para pilhas, que é a ordem do mais recente para o menos recente”.  Esta propriedade torna a pilha uma ferramenta ideal para o processamento de estruturas aninhadas de profundidade imprevisível, situação em que é necessário garantir que subestruturas mais internas sejam processadas antes da estrutura que as contenham.  A qualquer instante, uma pilha contém uma seqüência de obrigações adiadas, cuja ordem de remoção da pilha garante que as estruturas mais internas serão processadas antes da estrutura mais externa.

FILAS

Uma fila é uma lista em que todas as inserções são realizadas em um extremo da lista e, geralmente os acessos são realizados no outro extremo da lista.  O modelo intuitivo de uma fila é o de uma fila de espera em que as pessoas no início da fila são servidas primeiro e as pessoas que chegam entram no fim da fila.por esta razão, as filas são chamadas de lista FIFO, termo formado a partir de “ first-in”, ‘first-out”.  existe uma ordem linear para filas que é a ordem de chegada, filas sãi utilizadas quando precisamos processar itens de acordo com a ordem “primeiro-que- chega, primeiro-atendido”.  Sistemas operacionais utilizam filas para regular a ordem na qual tarefas devem receber processamento e recurso devem ser alocados a processos.

Comentários

+ Vistas

JAVA Speech - Tutorial Passo a Passo - Aquiles Burlamaqui

Fold Table of Contents Arquivos para Instalação Instalação Passo 1 - Instalando o TTS Runtime Passo 2 - Instalando o TTS SDK Passo 3 - Instalando VVCC Runtime Passo 4 -Instalando o IBM ViaVoice SDK Passo 5 -Instalando o SDK com Java Passo 6 - Configurando o Projeto no Eclipse Passo 7 - Testando o Sintetizador.java Passo 8 - Treinando o IBM ViaVoice para o reconhecimento Passo 9 - Corrigindo o PATH para o reconhecimento de voz Passo 10 - Testando o Reconhecedo.java Vídeo - Projeto: Reconhecimento e Sintetização de Voz utilizando Java Speech API - UCSAL

Instalando KDE4 no debian 6.0

Eu instalei o kde4 pelo aptitude assim: # aptitude install kde-full -y olha a versão: # kde4-config -v Qt: 4.8.2 Plataforma de desenvolvimento KDE: 4.8.4 (KDE 4.8.4) kde4-config: 1.0 parece estar tudo ok, você só deverá deixa-lo em português E para deixá-lo em Português é simples: Primeiro Instale o pacote pra o KDE falar em Português: # apt-get install kde-i18n-ptbr Esse procedimento irá remover alguns arquivos que foram instalados com o comando  # aptitude install kde-full -y. Após as remoções reinicie a máquina (Note que o KDE não iniciará). execute novamente o comando   # aptitude install kde-full -y e reinicie a máquina. Pronto, o Kde4 já abrirá em português. Abraço.

Web server Apache + PHP 5 + MySQL no Debian Squeeze sem complicação

Nessa dica vou ensinar como montar um Web server com Apache, PHP5 e MySQL dentro do Debian Squeeze, mas sem aquelas complicações que a gente costuma encontrar.  Ao final dessa dica, se você já tem um site pronto, você poderá colocar ele funcionando pelo menos na sua rede intranet.   Instalação:   Entre como root no seu sistema:  $ su root  O primeiro pacote a ser instalado é o Apache:  # aptitude install apache2 apache2-doc   Após o Apache, você ativar o suporte ao PHP:  # aptitude install php5 libapache2-mod-php5 Agora terá que ativar o suporte ao MySQL do PHP:  # aptitude install php5-mysql   Configuração:  Para quem vai montar um web server pessoal, primeiro devemos ativar o módulo "userdir" do servidor apache2.  Para isso você apenas digita:  # a2enmod userdir  Depois reinicie seu apache:  # /etc/init.d/apache2 restart  Se você vai col...