ESTRUCTURAS DE DATOS
ARREGLO
-Alimentación: acepta un acceso a una posición del arreglo con un dato de tipo índice ordinario o entero
-Extracción: Usa el índice al fin de llegar al elemento deseado para después eliminarlo
-Lectura: Lee y asigna valor a cada componente
-Asignación: asigna valor a cada componente
-Actualización: Por
*Inserción: adición de nuevo elemento
*Eliminación: borrado de un elemento
*Modificación: Reasignación de un elemento
-Ordenación: Organizar elementos de un vector en un orden
-Búsqueda: encontrar un valor en un conjunto de datos
Tipo de dato que almacena una secuencia de datos del mismo tipo.
-Se almacena en zonas contiguas de memoria y accede de manera directa mediante un índice de posición
-Colección finita, homogénea y ordenada de elementos
-Puede ser:
Unidimensional: almacena datos de forma secuencial en una sola dimensión y sus nodos se leen hacia una sola dirección
Multidimensional: Se requiere un índice por dimensión
Saber de un conjunto de números cual es el mayor.
Int n[100], x,mayor;
Cout<<”Elementos”;
Cin>>x;
For(int i=0;i<n;i++){
Cout<<i+1<<”Numero”;
Cin>>num[i];
If(num[i]>mayor){
Mayor=num[i];}}
Cout<<”mayor es:”<<mayor;
PILA
Push: agrega elemento
Pop: saca elemento
Isempty: evalúa si esta vacía
Top: muestra último elemento
Size: muestra el tamaño de la pila
-Apilamiento de datos, se toma el elemento de encima, lista en que la inserción y borrado de nuevos elementos se hace por un extremo “top”, último elemento que se agrega es el primero en salir.
-Colección ordenada de elementos
El juego del calamar donde ingresan en cierta posición y terminan pasando como últimas entradas primeras salidas.
#include<iostream>
#include<conio.h>
#include<stack>
using namespace std;
stack <int> pila;
int mayor;
int main (){
pila.push(1);
pila.push(2);
pila.push(3);
pila.push(4);
while(pila.size()>0){
if(pila.top()>mayor) mayor=pila.top();
}
pila.pop();
}
cout <<"El primer jugador en pasar es el Jugador Numero "<<mayor<<endl;
getch();
}
LISTA
Insert: agrega elemento
Delete: quita elemento
Display: muestra elementos de inicio al final
Size: muestra tamaño
Lineal: datos se almacenan de forma contigua, uno detrás de otro
Enlazada: secuencia de nodos donde se guardan datos arbitrarios y una o dos referencias, enlaces o apuntadores al nodo anterior
Una lista de artículos de supermercado
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
struct Nodo{
int dato;
Nodo*siguiente;};
void menu();
void insertarLista(Nodo*&,int);
void mostrarLista(Nodo*);
Nodo*lista=NULL;
int main(){
menu();
}
void menu(){
int opcion,dato;
do{
cout<<"MENU";
cout<<"\n1.Elementos";
cout<<"\n2.Mostrar";
cout<<"\n3.Salir";
cout<<"\nOpcion: ";cin>>opcion;
switch(opcion){
case1:cout<<"Numero: ";cin>>dato;
insertarLista(lista,dato);system("pause");break;
case2:mostrarLista(lista);system("pause");break;
}
system("cls");
} while(opcion!=3);
}
void insertarLista(Nodo*&lista,int n){
Nodo*nuevo_nodo=new Nodo();
nuevo_nodo->dato=n;
Nodo*aux1=lista;
Nodo*aux2;
while((aux1 !=NULL)&& (aux1->dato<n)){
aux2=aux1;
aux1=aux1->siguiente;
if(lista==aux1){
lista=nuevo_nodo;
}
else{aux2->siguiente=nuevo_nodo;
}
nuevo_nodo->siguiente=aux1;
cout<<"Elemento"<<n<<"Insertado";
}
void mostrarLista(Nodo*lista){
Nodo*actual=new Nodo();
actual=lista;
while(actual!=NULL){
cout<<actual->dato<<"->";
actual=actual->siguiente;
}
}
COLA
Enqueue: añade elemento al final
Dequeue: elimina elemento del frente de la cola
isEmpty: evalúa si la pila esta vacía o no
getFront: Devuelve el primer elemento que entro en la cola
size: muestra tamaño de la pila
Inserta nodos en un extremo de la lista y solo se eliminan en el otro extremo FIFO (primera entrada- primera salida)
Las pantallas donde aparece un texto escrito que va avanzando diciendo algo que se le escribió, como en el superbowl cuando en la pantalla aparece algún texto.
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
struct Nodo{
char dato;
Nodo*siguiente;};
//Menu
void menu();
void insertarCola(Nodo*&,Nodo*&,char);
bool cola_vacia(Nodo*);
void suprimirCola(Nodo*&,Nodo*&,char&);
Nodo*lista=NULL;
int main(){
menu();
}
void menu(){
int opc;
char dato;
Nodo*frente=NULL;
Nodo*fin=NULL;
do{
cout<<"MENU";
cout<<"\n1.Elementos";
cout<<"\n2.Mostrar";
cout<<"\n3.Salir";
cout<<"\nOpcion: ";
cin>>opc;
switch(opc){
case1:cout<<"Numero: ";cin>>dato;
insertarCola(frente,fin,dato);system("pause");break;
case2:"Mostrar";
while(frente !=NULL){
suprimirCola(frente,fin,dato);
if(frente!=NULL){
cout<<dato<<",";
}
else{
cout<<dato<<".";
}}
system("pause");break;
case3:break;
}
system("cls");
} while(opc!=3);
}
void insertarCola(Nodo*&frente,Nodo*&fin,char n){
Nodo*nuevo_nodo=new Nodo();
nuevo_nodo->dato=n;
nuevo_nodo->siguiente=NULL;
if(cola_vacia(frente)){
frente=nuevo_nodo;}
else{fin->siguiente=nuevo_nodo;
}
fin=nuevo_nodo;
//saber si esta vacia
bool cola_vacia(Nodo*frente){
return(frente==NULL)? true:false;
//eliminar
void suprimirCola(Nodo*&frente,Nodo*&fin,char&n){
n=frente->dato;
Nodo*aux=frente;
if(frente==fin){
frente=NULL;
fin=NULL;
}
else{
frente=frente->siguiente;
}
delete aux;
}
}
No hay comentarios:
Publicar un comentario