Redes

Páginas: 16 (3955 palabras) Publicado: 11 de agosto de 2012
Programació amb C# .NET
Tema 5 (a): Colecciones
Jordi Linares i Pellicer

Introducción
!

La utilización de estructuras de datos dinámicas resulta especialmente interesante en muchas aplicaciones. En System.Collections.Generic disponemos de una implementación de las estructuras de datos más útiles:
" " "

!

Listas (List, LinkedList) Pilas (Stack) y Colas (Queue) Tablas dedispersión/hash (Dictionary)

!

En C# y con el uso de los genéricos no es difícil implementar nuestras propias estructuras (árboles, grafos etc.)

Ejemplo: una pila dinámica
public class Pila { private class Nodo { private T info; private Nodo sig; public Nodo Sig { get { return sig; } set { sig = value; } } public T Info { get { return info; } set { info = value; } } } private Nodo cabeza = null;public void push(T valor) { Nodo n = new Nodo(); n.Info = valor; n.Sig = cabeza; cabeza = n; } Pila p = new Pila(); p.push(3.1); p.push(3.14); p.push(3.141); p.push(3.1415); p.push(3.14159); while (!p.isEmpty()) { Console.WriteLine(p.top()); p.pop(); } public void pop() { cabeza = cabeza.Sig; } public T top() { return cabeza.Info; } public Boolean isEmpty() { return cabeza == null; }

}

List,Queue y Stack
!

Implementados internamente con un array, redimensionando éste cuando se insertan nuevos elementos. El array interno de redimensiona de forma que siempre hayan posiciones libres donde insertar (diferencia entre las propiedades Capacity y Count)

!

List
!

Métodos más comunes: Add, Contains, Insert, Remove, Clear, IndexOf, Max, Min, Sort ... Se puede acceder con [] a suscomponents (primera componente 0) Ejemplo:
List lista = new List(); lista.Add(3.141); lista.Add(3.1415); lista.Add(3.14159); foreach(double x in lista) Console.WriteLine(x); lista.Clear();

!

!

Stack
!

Métodos más comunes: Push, Pop (devuelve y elimina el top), Contains, Clear... Puede ser enumerada, foreach, sin perder su información. Ejemplo:
Stack pila = new Stack();pila.Push(3.141); pila.Push(3.1415); pila.Push(3.14159); foreach(double x in pila) Console.WriteLine(x); while (pila.Count > 0) Console.WriteLine(pila.Pop());

!

!

Queue
!

Métodos más comunes: Enqueue, Dequeue (devuelve y elimina la cabeza de la cola), Contains, Clear... Puede ser enumerada, foreach, sin perder su información. Ejemplo:
Queue cola = new Queue(); cola.Enqueue(“1”);cola.Enqueue(“2”); cola.Enqueue(“3”); foreach(double x in cola) Console.WriteLine(x); while (cola.Count > 0) Console.WriteLine(cola.Dequeue());

!

!

LinkedList
! !

Lista totalmente dinámica (doblemente enlazada) Métodos más comunes: AddAfter, AddBefore, AddFirst, AddLast, Remove, RemoveFirst, RemoveLast ... Se puede enumerar, foreach, o acceder a los elementos a partir de las propiedades First, Last, Nexty Previous Ejemplo:
LinkedList lista = new LinkedList(); lista.AddLast(3.141); lista.AddLast(3.1415); lista.AddLast(3.14159); foreach(double x in lista) Console.WriteLine(x); lista.Clear();

!

!

Dictionary
!

Tabla de dispersión (hash) con tratamiento de colisiones por encadenamiento Métodos más comunes: Add(clave, valor), ContainsKey, Remove(clave), TryGetValue ... Se puede usar []con la clave como índice (se lanza excepción si la llave no está en la tabla) Ejemplo:
Dictionary abrirCon = new Dictionary(); abrirCon.Add(“txt”, “notepad.exe”); abrirCon.Add(“jpg”, “gimp.exe”); abrirCon.Add(“.doc”, “word.exe”); Console.WriteLine(“Los txt se abren con ” + abrirCon[“txt”]);

!

!

!

Programació amb C# .NET
Tema 5 (b): Ficheros
Jordi Linares i Pellicer

Introducción! !

Utilizamos el espacio de nombres System.IO. La clase principal es FileStream, aunque utilizaremos StreamReader/StreamWriter para ficheros de texto y BinaryReader/BinaryWriter para ficheros binarios.

Trabajando con texto
!

Utilizamos las clase StreamReader para lectura y StreamWriter para escritura Codificación por defecto UTF-8 Métodos StreamReader:
" Read:

! !

lee un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Red De Redes
  • Red de redes
  • Redes
  • Redes
  • Redes
  • Redes
  • Redes
  • Redes

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS