Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- const int MAX = 10;
- // Tipo base dos elementos da lista
- typedef struct elementos {
- char nome[50];
- // Outros elementos
- } t_elemento;
- // Estrutura da lista
- typedef struct lista {
- t_elemento vetor[MAX];//vet que armazena elem. da pilha
- int n; // posicao (indice) do ultimo elemento da lista
- } t_lista; // tipo lista
- t_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){
- 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(){
- printf("Programa de teste para lista sequencial\n\n");
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment