Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como criar uma lista ligada em C
Em C, uma lista ligada permite que você crie uma lista sem decidir de antemão quanto tempo pode ser, e sem perder a memória através da atribuição de elementos que ainda não têm . A desvantagem é que você tem que fazer todo o trabalho de organização e gestão da lista na memória. Instruções
Criar a estrutura de Dados
1

Escolha um nome, em seguida, usar typedef para defini-lo. Cada lista ligada vai precisar de uma estrutura , mesmo que só tem uma variável :

 typedef struct product_data PRODUCT_DATA ; Página 2 

Definir a estrutura . O último elemento deve ser um ponteiro para o tipo que você acabou de definir , e com o nome " next" :

 struct {int product_data product_code ; int product_size ; PRODUCT_DATA * next ;} ; 
3

Alocar dois ponteiros para esta estrutura de dados , inicializando -los para NULL, para ser a lista de " cabeça" e "cauda" :

 PRODUCT_DATA * products_head = NULL; PRODUCT_DATA * products_tail = NULL; 
adicionar à lista < br >
4

Alocar uma variável temporária que é um ponteiro para a estrutura de dados : PRODUCT_DATA

 * newproduct ; 
5

Use malloc () para criar um novo elemento, sempre a verificação de um erro:

 if (( newproduct = malloc ( sizeof ( PRODUCT_DATA ))) == NULL ) { abort ( );} 
6

preencher os campos do novo elemento. Defina seu campo "next" para NULL :

 newproduct -> product_code = NewCode ; newproduct -> product_size = novotamanho ; newproduct -> next = NULL; 
7

Defina a variável de cabeça. Se a variável de cabeça é NULL, este é o primeiro elemento adicionado à lista , para definir a variável de cabeça para apontar para ele :

 se products_head = newproduct ; 
8

Prepare-se para uma diferente ( products_head !) variável. Em outros casos , a cauda variável aponta para o último item da lista , para definir seu próximo valor para apontar para o novo item :

 mais products_tail -> next = newproduct ; 
9

Atualize a cauda ponto para o novo último elemento , em ambos os casos : products_tail

 = newproduct ; 
Acesse a Lista
10

Crie outra variável apontando temporária para a estrutura de dados :

 PRODUCT_DATA * produto; 
11

Defina sua variável temporária para a variável de cabeça : produto

 = products_head ; 
12

loop através dos elementos , verificando cada um deles e , em seguida, definindo a variável temporária para o próximo ponteiro para atravessar para a próxima:

 while ( produto ) {if (produto -> product_code = 15 !) { produto = produto - > next ;}} 
13

Verifique se a variável é NULL . Se assim for, você nunca encontrou o item :

 se return 0; (produto !) . Caso contrário, ele aponta para o item que estava procurando : 
 retornar product_size produto -> ; 
Clean Up Your Work
14

liberar a lista quando o programa termina , como nem todos os sistemas operacionais vai lidar com isso automaticamente
15

loop enquanto a variável de cabeça não é NULL : .

 while ( products_head ) { 
16

Guarde seu próximo ponteiro na a variável temporariamente cauda :

 products_tail = products_head -> next; 
17

desalocar o elemento :

 livre ( products_head ); 
18

Coloque o ponteiro cabeça para o ponteiro que você salvou na etapa 4:

 products_head = products_tail ;} 

Anterior :

Próximo : No
  Os artigos relacionados
·Como alocar um ponteiro matriz 2D 
·Como substituir um método de acesso em Objective- C 
·Como alterar o ícone no Xcode 
·Como fazer um buffer Hex Do Char C 
·Programação C Erros e como consertá-los 
·Como instalar o Microsoft Visual C + + 
·Como fazer um aplicativo para o iPhone no Visual C 
·Como desenhar linhas no Visual C + + 
·Como depurar vazamentos de memória em GDB 
·Como acessar uma estrutura de C Fortran 
  Artigos em destaque
·Qual é o propósito de um diagrama de fluxo de dados 
·Como exibir um triângulo retângulo de números em C P…
·Como fazer uma calculadora Geometria em C + + 
·Como faço para escrever um programa de conversão de t…
·Como descobrir quais funções C estão disponíveis no…
·Como usar o operador de sobrecarga em C + + 
·Como fazer C Jogos 
·Como multiplicar várias inteiros em C 
·Como você exibir o número de caracteres em uma seqüê…
·Como escrever uma folha de XLS em CSharp 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados