1.3 Estructuras Lineales y No Lineales

entro de esta clasificacion podemos encontrar las estructuras lineales, que son aquellas que nos ayudan a guardar datos dentro de un arreglo o lista, o bien dentro de una tabla o matriz.


Aemas tambien existe dentro de esta clasificacion las pilas, colas y listas enlazadas, de las cuales se mostrara cada una en la proxima unidad que son las estructuras lineales.

Ahora bien dentro de la clasificacion de las no lineales nos encontramos con los arboles y los grafos, esta clasificacion se muestra con mas detalle en la unidad 3.

Pero si nos enfocaremos a lo que conocemos como Tipos de Datos Abstractos o TDA`S



Los TDA`S son estructuras especiales, ya que son conocidas tambien como valores string o cadena de caracteres, sobre todo caracteres alfabeticos.

por ejemplo:
  para declarar una TDA en c# sedebe de tener en cuenta lo siguiente

     tipo nombre; variable simple
      
       string apellido;
      para inicializarlo solo debemos poner:
         string apellido = {"Negrete"};

O bien cuando queremos declarar una variable de tipo string usando arreglos, esto seria

      tipo   nombre  = new tipo[tamanio];
      por ejemplo
       string paises = new string[20]; le estamos dicendo que etamos declarando un arreglo tipo string llamado paises y que va a contener un total de 20 paises.

pero si lo que deseamos es inicializar un TDA lo debemos hacer de la siguiente forma
     
string dias_semana = {"Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"};

Recordar que si declaramos un TDA de tipo arreglo, cuando se desee capturar hay que usar ciclo for o la instruccion Foreach(instruccion).

En la unidad dos veremos con mas detalle esto.
pasa a manejo de TDAS PARA QUE APRENDAS MAS SOBRE ESTE TEMA.

manejo de TDA`S

string

Una cadena de caracteres en C# es un objeto de la clase string del sistema de nombres System llamado System.String

Se puede pensar en una string como una cadena de caracteres almacenada en una lista o vector con los elementos tipo char.
Por ejemplo:

char cadena = new char[40]  // aqui se esta definiendo una cadena con valores del 0 al 39 que vienen siendo los 40 caracteres.

Clase String

Esta clase proporciona metdotospara examinar caracteres individuales de una cadena de caracteres, comparar cadenas, buscar y extraer subcadenas, copiar cadenas, convertir cadenas en mayusculas o minusculas, etc.

Se veran algunos metodos mas usados en cuestion de cadenas.

Asi mismo el lenguaje c# proporcina el operador + para concatenar(unir) objetos de tipo string.

Por ejemplo:
System.Console.WriteLine("Dimencion de la matriz: "+ cadena.Length;

o simplemente ponerlo de la siguiente forma

System.Console.WriteLine("Dimension de la matriz:"+ (cadena.Leng).ToString());

String(char[])
La clase string proporciona multiples formas de un constructor (visto en Programacion), la que mas se usa es la que a continuacion expondremos, ya que permite crear un objeto string a partir de una matriz de caracteres. Por ejemplo:

char[] cadena = new char[40]; //matriz de 40 caracteres
String str = new String(cadena);
System.Console.WriteLine.("texto introducido: " + str);

String ToString()
Este metodo devuelve el propio objeto de tipo String que recibe el mensaje ToString.

Por ejemplo en el siguiente ejemplo en codigo, se hace referencia que dos variables son equivalentes, es decir que tienen el mismo valor.

string str1 = "abc", str2;
str2 = str1.ToString(); // aqui estamosmostrando que son equivalentes.

O bien podemos usar ortra instruccion que hace lo mismo llamada ReferenceEquals de la clase Object. Por ejemplo si partimos del ejemplo anterior pero usando esta instruccion nos dara como resultado True siemp[re y cuando sean iguales, de lo contrario nos mostrara False.

Esto queda de la siguieten forma
System.Console.WriteLine(System.Object.ReferenceEquals(str1,str2));

Podemos decir entonces que el metodo ToString, suele estar definido por cada clase objeto con el fin de devolver una string.

Por ejemplo:

char[] cadena = new char[40];
string str = (cadena.Length).ToString(); 

void CopyTo(int indFuente. char[] destino, int indDes, int nCars)
Este metodo permite copiar total o parcialmente, el contenido de un objeto de tipo string.

En el siguiente ejemplo veremos como se copia de la variable string llamada texto en una matriz de caracteres llamada CadChar.

string texto = "un texto";
char[ ] CadChar = new char[texto.Length];
texto.CopyTo(CadChar,0,texto.Length);

static String Concat(String str1, String str2)

Este metodo devuelve como resultado una nueva string, a partir de unir dos variables de tipo string. Por ejemplo queremos unir:

string str1 = "Ayer";
string str2 = "llovio";
string str3 = System.String.Concat(str1,str2);
Concole.WriteLine("el resultado es {0}", str3);

int CompareTo(string otro string)

Este metodo compara lexicograficamente el string especificado, con el objeto string que recibe el mensajeCompareTo, recordar que el metodo Equals realiza la misma operacion, el resultado devuelto es un entero.

La siguiente tabla nos muestra lo que regresa al realizar la comparacion:

 Tabla de comparaciones con e luso de string
 < 0 cuando es menor el string que recibe
 > 0 cuando es mayor el string que recibe
 = 0 cuando son iguales las dos string
 
En otrtas palabras CompareTo nos dice si una cadena de caracteres esta en orden alfabetico que otra. El siguiente ejemplo muestra como se realiza la comparacion y que nos da de resultado.

string str1 = "abc", str2 = "abcdefg";
if (str1.CompareTo(str2) < 0) // aqui comparamos si str1 es menor que str2
System.Console.WriteLine(str1) // aqui se despliega si se cumple la condicion

int Length

Esta propiedad devuelve en numero la cantidad de caracteres de una string.

Por ejemplo:
 el siguiente ejemplo escribe como resultado 45
 string str1 = "La Provincia de Baja California es muy bonita"
 System.Console.WriteLine("Longitud de la cadena" + str1.Length));

string ToLower()

Este metodo convierte a minusculas las letras mayusculas del objeto string que recibe el mensje, Esto nos da como resultado todos los campos convertidos en minusculas.

Por ejemplo: Queremos hacer que el nombre"CLAUDIA", lo ponga en minusculas, entonces hacemos lo siguiente.

string str1, str2 = "CLAUDIA";
str1 = str2.ToLower();
Console.WriteLine(str1);

string ToUpper( )

Este metodo es lo mismo que el anterior(ToLower), solo que este nos da como resultado todas las letras que encuentre en minusculas las forma en mayusculas y nos devuelve en mayuscula lo que quisimos cambiar.

Ejemplo: 

Queremos cambiar la frase "Ensenada tu eres la novia del mar", queda de la siguiente forma

string str1, str2 ="Ensenada tu eres la novia del mar";
str1 = str2.ToUpper( );

string ToString()

Este metodo devuelve como resultado otro string, ya que copia del string y se recibe como ToString.

El siguiente ejemplo copia una string con sStringTo.

string copia = new string("a,b,c");
string raiz = copia.ToString();