Listas simples c++
Raphael L. Tomaz Oficina de desenvolvimento de Jogos Trabalho Lista Simples C++
2013
Introdução Lista simples é um sistema que com ponteiros fornece um controle da quantidade de itens numa lista que não se conhece um fim ou não se quer um limite fixo de componentes. Aqui será utilizado contendo formas geométricas, quadrados, retângulos e triângulos.
Código #include #include "Manager.h" #include "Quadrado.h" #include "Retangulo.h" #include "Triangulo.h" using namespace std; int main () { Manager *lista = new Manager(); lista->addNode(new Quadrado(15)); lista->addNode(new Retangulo(10, 40)); lista->addNode(new Triangulo(45, 45)); lista->print(); lista->addNodeIni(new Retangulo(10, 25)); // adiciona node no começo lista->addNodeIn(2, new Quadrado(20)); // adiciona node em uma posição lista->print(); lista->delNode(3); // deleta node de uma posição. lista->print(); cout next; tmp->next = node; } } void Manager::addNodeIni(Formas *forma) { Node *node = new Node(forma); node->next = lista; //Dizendo que meu novo nó está apontando para a primeira posição da lista... A lista na verdade é um marcador lista = node; //Digo que o começo da minha lista é no novo nó. } void Manager::addNodeIn(int pos, Formas *forma) { int count = 0; Node *tmp = lista; Node *node = new Node(forma); node->next = 0; for(; tmp->next != 0;){ count++;
if(count == pos - 1) { node->next = tmp->next; tmp->next = node; return; } else tmp = tmp->next; } } void Manager::addNodeIn(int pos, Formas *forma) { int count = 0; Node *tmp = lista; Node *node = new Node(forma); node->next = 0; for(; tmp->next != 0;) { count++; if(count == pos - 1) { node->next = tmp->next; tmp->next = node; return; } else tmp = tmp->next; } } int Manager::Length() { int count = 0; Node *tmp = lista; for(; tmp->next != 0;) { count++; tmp = tmp->next; }
return count+1; } void Manager::sort() { } void Manager::print() { for(Node *tmp = lista; tmp != 0;