Projeto de lista encadeada ordenada para controlar a inserção de produtos

370 palavras 2 páginas
/*1 - Crie uma lista encadeada ordenada para controlar a inserção de produtos. Cada produto deve possuir código, nome e quantidade em estoque. Crie funções que possibilite:

a) apresentar os produtos ordenados por código (obs. o código deve ser informado pelo usuário, de forma aleatória).

b) apresentar os produtos ordenados, de maneira decrescente, pela quantidade em estoque. */

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "windows.h"

typedef struct Temp { int codigo; //variável que receberá a informação int qtdestoque; char nome[50];
Temp *proximo; //ponteiro para o próximo elemento da lista
}TPRODUTO;

// cria o inicio da lista
TPRODUTO *inicio; //ponteiro para o início da lista

// Funcao que define a lista como vazia. void inicializarLista() { inicio = NULL;
}

// Funcao que insere um elemento do inicio da lista. void inserir() {
TPRODUTO *novoProduto, *produtoAnterior, *produtoAtual; novoProduto = (TPRODUTO *) malloc(sizeof(TPRODUTO)); printf("\nInsira o codigo do produto: "); scanf("%i",&novoProduto->codigo); printf("\nInsira o nome do produto: "); fflush(stdin); gets(novoProduto->nome); printf("\nInsira a quantidade de estoque do produto: "); scanf("%i",&novoProduto->qtdestoque); novoProduto -> proximo = NULL;
//insere novo produto na lista if (inicio == NULL) //verifica se a lista está vazia
{
inicio = novoProduto;
}
else { produtoAtual = inicio; if (produtoAtual -> codigo > novoProduto->codigo)
{
novoProduto -> proximo = inicio; inicio = novoProduto;
}
else { while (produtoAtual != NULL) { if (produtoAtual -> codigo < novoProduto->codigo) { produtoAnterior = produtoAtual; produtoAtual = produtoAtual -> proximo;
}
else { produtoAtual = NULL;
}

} novoProduto -> proximo = produtoAnterior -> proximo; produtoAnterior -> proximo = novoProduto;
}
} system("cls"); }

void ordenarPeloCodigo()
{
TPRODUTO *p; if (inicio == NULL)
{
printf("--- fim da lista

Relacionados

  • Estrutura de Dados
    16294 palavras | 66 páginas
  • Especialista
    19357 palavras | 78 páginas
  • Computação
    70360 palavras | 282 páginas
  • Tec info
    11577 palavras | 47 páginas
  • Projetos de algoritmos
    42029 palavras | 169 páginas
  • informatica
    5913 palavras | 24 páginas
  • Engenheiro
    17822 palavras | 72 páginas
  • Sistemas Operacionais
    23502 palavras | 95 páginas
  • Como programar em c
    264550 palavras | 1059 páginas
  • Estruturas de dados em c
    114286 palavras | 458 páginas