lunes, 5 de diciembre de 2022

Estructuras

 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