HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Estruturas de dados lineares |
|
|
Estruturas de dados lineares
|
Nós vimos que é muito simples criar as estruturas de dados que são similares organizado à maneira que a memória de computador é organizada. Por exemplo, a lista do empregado da companhia do ABC é uma estrutura de dados linear. Desde que a memória de computador é também linear, é muito fácil ver como nós podemos representar esta lista com a memória de computador. Alguma estrutura de dados que organizar os elementos de dados um depois que o outro é sabido enquanto estrutura de dados linear. Assim distante nós vimos dois exemplos de estruturas de dados lineares: a estrutura de dados da corda e a companhia do ABC alistam.
Você pode ter observado que estes dois exemplos de estruturas de dados lineares sese assemelham. Isto é porque ambos são tipos realmente diferentes das listas. No general, todas as estruturas de dados lineares olham como a lista. Entretanto, isto não significa que todas as estruturas de dados lineares são exatamente as mesmas. Supôr que eu quero projetar uma lista armazenar os nomes dos empregados do ABC no computador. Um projeto possível é organizar acima os nomes similares ao retrato do exemplo. Um outro projeto possível é usar os ponteiros que nós aprendemos aproximadamente na última lição. Quando estes dois projetos fornecerem a mesma funcionalidade a maneira estão executados no computador são muito diferentes. Isto significa que há uma vista abstrata de uma lista que seja distinta de toda a execução particular do computador
Você pode também ter observado que o retrato dos empregados do ABC não é tão exatamente o mesmo quanto a lista original. Quando nós fazemos uma lista dos nomes, nós tendemos a organizar esta lista em uma coluna melhor que uma fileira. Neste caso, a respresentação conceptual ou lógica de uma lista é a coluna dos nomes. Entretanto, a respresentação física da lista na memória de computador é a fileira das cordas. Para a maioria de estruturas de dados, a maneira de que nós pensamos sobre elas somos distante diferentes da maneira são executados no computador. Ou seja a respresentação física é muito diferente daquela da respresentação lógica, especialmente nas estruturas de dados que usam ponteiros.
|
Lista requisitada: A vista abstrata |
A estrutura de dados linear a mais comum usada é a lista. Agora por você são já o familiar bonito com a idéia de uma lista e pelo menos o one-way de representar uma lista no computador. Agora nós estamos indo olhar um tipo particular da lista: uma lista requisitada. As listas requisitadas são muito similares à lista alfabética de nomes do empregado para a companhia do ABC. Estas listas mantêm artigos em uma ordem específica tal como a ordem alfabética ou numérica. Sempre que um artigo é adicionado à lista, é colocado na posição classificada correta de modo que a lista inteira seja classificada sempre.
Antes que nós consideremos como executar tal lista, nós necessitamos considerar a vista abstrata de uma lista requisitada. Desde que a idéia de uma vista abstrata de uma lista pode ser uma pouco desconcertante, vamos pensar sobre um exemplo mais familiar. Considerar a vista abstrata de uma televisão. Não obstante quem faz uma televisão, nós todos esperamos determinadas coisas básicas como a abilidade de mudar as canaletas e ajustar o volume. Contanto que estas operações estiverem disponíveis e a tevê indicar as mostras que nós queremos ver, nós realmente não nos importamos com quem fizeram a tevê ou como eles escolheu a construir. Os circuitos dentro do jogo de tevê podem ser muito diferentes de um tipo ao mesmo seguinte, mas da funcionalidade do remains. Similarmente, quando nós consideramos a vista abstrata de uma lista requisitada, nós não nos preocupamos sobre os detalhes da execução. Nós somos concernidos somente com o que a lista faz, não como o faz.
Supôr que nós queremos uma lista que possa prender o seguinte grupo de números classificados: [2 4 6 7]. Que são algumas coisas que nós pudemos querer fazer com nossa lista? Bem, desde que nossa lista está em ordem, nós necessitaremos alguma maneira de adicionar números à lista no lugar apropriado, e nós necessitaremos alguma maneira de suprimir números que nós não queremos da lista. Para representar estas operações, nós usaremos a seguinte notação:
|
AddListItem(List, Item)
RemoveListItem(List, Item)
|
|
Cada operação tem o nome e a lista dos parâmetros as necessidades da operação. A lista do parâmetro para a operação de AddListItem inclui uma lista e um artigo. A operação de RemoveListItem é muito similar exceto este tempo onde nós especificaremos o artigo nós queremos remover. Estas operações são parte da vista abstrata de uma lista requisitada. São o que nós esperamos de toda a lista requisitada não obstante como é executada na memória de computador.
|
Execução da disposição
|
Uma aproximação a criar uma lista é simplesmente reservar um bloco de pilhas de memória adjacentes a grande bastante para prender a lista inteira. Tal bloco da memória é chamado como a disposição. Naturalmente, desde que nós queremos adicionar artigos a nossa lista, nós necessitamos reservar mais do que apenas quatro pilhas de memória. Para agora, nós faremos nossa disposição grande bastante para prender tanto quanto seis números.
|
Execução do ponteiro
|
Uma segunda aproximação a criar uma lista é ligar grupos das pilhas de memória que usam junto os ponteiros. Cada grupo de pilhas de memória é chamado como um nó. Com esta execução cada nó contem o artigo de dados e o ponteiro ao artigo seguinte na lista. Você pode retratar esta estrutura enquanto uma corrente dos nós ligou junto pelos ponteiros. Contanto que nós soubermos onde a corrente começa, nós podemos seguir as ligações para alcançar todo o artigo na lista. Esta estrutura é chamada frequentemente como uma lista ligada.
Observar que a última pilha de memória em nossa corrente contem o símbolo chamado “nulo”. Este símbolo é um valor especial que nos diga que nós alcançamos a extremidade de nossa lista. Você pode pensar de que este símbolo como um ponteiro esse aponta a nada. Desde que nós estamos usando os ponteiros executar nossa lista, as operações AddListItem e o RemoveListItem da lista trabalharão diferentemente do que fizeram para listas seqüenciais.
|
|
|
Keywords: estrutura de dados linear, estruturas de c++, estruturas de dados de java, função linear, estruturas de dados das árvores, estruturas de dados do gráfico, estruturas de dados da árvore, funções lineares
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|