All pastes #2122976 Raw Edit

Something

public cpp v1 · immutable
#2122976 ·published 2012-02-29 20:00 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 10// Tipo base dos elementos da listatypedef struct elementos {  char nome[50];  // Outros elementos} t_elemento;// Estrutura da listatypedef struct lista {        t_elemento vetor[MAX];//vet que armazena elem. da pilha        int n; // posicao (indice) do ultimo elemento da lista} t_lista; // tipo listat_lista criar(){        t_lista lista;        lista.n = -1;                        return lista;}int isVazia(t_lista * lista){    return (lista->n == -1);}int isCheia(t_lista * lista){    return (lista->n == MAX-1);}int getTamanho(t_lista * lista) {    return lista->n + 1;}t_elemento * getElemento(t_lista * lista, int pos) {    if ((pos > lista->n) || (pos < 0))       return 0;           return &(lista->vetor[pos]);}int compara(t_elemento dado1, t_elemento dado2){   return strcmp(dado1.nome, dado2.nome);}int getPosicao(t_lista * lista, t_elemento dado){    int i;    for (i = 0; i <= lista->n; i++)        if (compara(lista->vetor[i], dado) == 0)           return i;               return -1;}int deslocaEsquerda(t_lista * lista, int pos) {    int i;    for (i=pos; i<=(lista->n); i++)        lista->vetor[i] = lista->vetor[i+1];            return 1;}int deslocaDireita(t_lista * lista, int pos) {    int i;    for (i=lista->n + 1; i>pos; i--)        lista->vetor[i] = lista->vetor[i-1];            return 1;}int inserir (t_lista * lista, int pos, t_elemento dado) {    if ( isCheia(lista) || (pos > lista->n + 1) || (pos < 0) )       return 0;           deslocaDireita(lista, pos);    lista->vetor[pos] = dado;    (lista->n)++;        return 1;}int remover (t_lista *lista, int pos) {    if ((pos > lista->n) || (pos < 0))       return 0;        deslocaEsquerda(lista, pos);    (lista->n)--;        return 1;}int main(){	//Criando	printf("\n\nCriando Lista...");    t_lista listinha = criar();    t_elemento a, b, c;    printf("Digite o primeiro nome: ");    scanf("%s",&a.nome);    getchar();    printf("Digite o Segundo nome: ");    scanf("%s",&b.nome);    getchar();    printf("Digite o terceiro nome: ");    scanf("%s",&c.nome);	//Inserindo	printf("\n\nInserindo...");    inserir (&listinha, 0, a);    inserir (&listinha, 1, b);    inserir (&listinha, 2, c);	//Mostrando	printf("\n\nMostrando...");    printf("\nNome1: %s", getElemento(&listinha, 0)->nome);    printf("\nNomes: %s", getElemento(&listinha, 1)->nome);    printf("\nNome3: %s", getElemento(&listinha, 2)->nome);	//Buscando e mostrando	printf("\n\nBuscando mostrando...");     printf("\nBuscou o nome: %s", getElemento(&listinha, getPosicao(&listinha, b))->nome );        //Apagando um nome    printf("\n\nApagando(posicao 2)...");    remover(&listinha, 2);    return 0;    }