Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1. Una función "full()", que devuelve 1 si la lista está llena, y 0 en otro caso
- 2. Una función "element(i)", que devuelve el valor contenido en la i-ésima posición, o VACIO, si la lista no contiene elemento en esa posición. OJO: no lo remueve, sólo toma una copia del valor almacenado.
- 3. Una función "insert(x)" que inserta el valor "x" al final de la lista y devuelve 1 si esto se se realiza con éxito, o 0 si no es posible
- 4. Una función "remove(i)" que elimina el el valor contenido en la i-ésima posición, o VACIO, si la lista no contiene elemento en esa posición.
- 5. Un procedimiento main() desde el que se puede invocar cualquiera de las funciones anteriores.
- */
- #include <iostream>
- #include <list> //lista
- using namespace std;
- //Funcion auxiliar para ver lista
- void ver(list <string> *lista){
- list<string>::iterator pos;
- int count(0);//Nos muestra el indice de la lista
- pos=(*lista).begin();
- while (pos!=(*lista).end()){
- cout <<count++<<" = "<<*pos<<endl;
- pos++;
- }
- }
- //1. Una función "full()", que devuelve 1 si la lista está llena, y 0 en otro caso
- int full(list <string> lista){ return (lista.size() >0 ? 1 : 0 );}
- //2. Una función "element(i)", que devuelve el valor contenido en la i-ésima posición, o VACIO, si la lista no contiene elemento en esa posición.
- string element(list <string> lista,int i){
- list<string>::iterator pos=lista.begin();
- while(i--){pos++;}
- return *pos;
- }
- //3. Una función "insert(x)" que inserta el valor "x" al final de la lista y devuelve 1 si esto se se realiza con éxito, o 0 si no es posible
- int insert(list <string> *lista,string elemento){
- long unsigned int tam=(*lista).size();//tam. original antes de anadir elemento
- (*lista).push_back(elemento);//Poner en comentario para ver respuesta 1 o 0 a la escritura
- return (tam+1==(*lista).size() ? 1 : 0);//Se incrementa 1 ok
- }
- //4. Una función "remove(i)" que elimina el el valor contenido en la i-ésima posición, o VACIO, si la lista no contiene elemento en esa posición.
- void remove(list <string> *lista,int i){
- list<string>::iterator pos=(*lista).begin();
- while(i--){pos++;}
- (*pos).erase();
- }
- //5. Un procedimiento main() desde el que se puede invocar cualquiera de las funciones anteriores.
- int main (){
- list <string> lista{"A","B","C","d","e","f"};
- list <string> vacia;//vacia
- //1. Una función "full()", que devuelve 1 si la lista está llena, y 0 en otro caso
- cout <<"Lista llena "<<full(lista)<<endl;//Test full llena
- cout <<"Lista vacia "<<full(vacia)<<endl;//Test full vacia
- //2. Una función "element(i)", que devuelve el valor contenido en la i-ésima posición,
- cout <<"ver elemento n° 3(d) = "<<element(lista,3)<<endl;
- //3. Una función "insert(x)" que inserta el valor "x" al final de la lista y devuelve 1 si esto se se realiza
- cout <<"INSERT = "<< insert(&lista,"ultimo")<<endl;
- ver (&lista);
- //4. Una función "remove(i)" que elimina el el valor contenido en la i-ésima posición,
- remove(&lista,2);
- ver (&lista);
- }
Add Comment
Please, Sign In to add comment