1 00:00:00,000 --> 00:00:20,920 Hola, a petición de un alumno voy a grabar este vídeo para explicar en qué consiste 2 00:00:20,920 --> 00:00:28,160 la organización secuencial encadenada y voy a resolver el ejercicio que viene en los contenidos 3 00:00:28,160 --> 00:00:36,400 para que lo entendáis bien. En primer lugar el nombre de organización secuencial encadenada y 4 00:00:36,400 --> 00:00:42,440 os tenéis que fijar en dos cosas, primero porque es secuencial y porque se llama encadenada, 5 00:00:42,440 --> 00:00:49,240 la organización es una ordenación, se llama secuencial porque todos los registros están 6 00:00:49,240 --> 00:00:57,280 en la ubicación donde se guarden, un disco duro, una memoria flash, da igual, el sitio donde se 7 00:00:57,280 --> 00:01:08,040 guarden en el fichero estarán colocados de forma secuencial, es decir, aquí tenemos un primer 8 00:01:08,040 --> 00:01:16,800 registro que es Carmen, un segundo registro que es Alfredo, un tercer registro que es Fernando y 9 00:01:16,800 --> 00:01:25,000 un cuarto registro que es Isabel, si os fijáis aquí he puesto registro 1, registro 2, registro 3 y 10 00:01:25,000 --> 00:01:34,200 registro 4 porque es el orden en que se han guardado físicamente en el fichero esos registros, 11 00:01:34,200 --> 00:01:41,200 es decir, la secuencia física hace siempre referencia a lo que es el soporte, el fichero, 12 00:01:41,200 --> 00:01:50,200 donde está guardada la información. Ahora bien, estos registros vienen acompañado de un registro 13 00:01:50,200 --> 00:01:57,480 más, este que veis aquí pequeñito es un registro más y ese registro más que está en todos los 14 00:01:57,480 --> 00:02:07,800 registros es un apuntador o un puntero a una secuencia lógica, por eso se dice que está encadenada, 15 00:02:07,800 --> 00:02:16,720 es decir, una secuencia lógica quiere decir que un registro o el puntero de este registro nos va 16 00:02:16,720 --> 00:02:26,800 a llevar a la ordenación de él mismo. Entonces, para que veamos cómo se quedaría ordenada esta 17 00:02:26,800 --> 00:02:35,040 estructura vamos a hacer el ejercicio por completo. El puntero de cabecera es un puntero inicial que 18 00:02:35,040 --> 00:02:41,240 tiene que estar establecido o bien en la cabecera del fichero o bien establece el sistema operativo, 19 00:02:41,240 --> 00:02:46,520 eso a nosotros ahora mismo no nos interesa, ¿vale? Ese puntero de cabecera tiene que estar guardado 20 00:02:46,520 --> 00:02:52,320 en un sitio, pero a nosotros eso ahora mismo no nos importa, lo que nos importa es saber cómo se organiza 21 00:02:52,320 --> 00:02:59,600 esta información. Una cosa que quiero que quede clara es que aquí en el registro este nombre que 22 00:02:59,600 --> 00:03:08,320 aparece lo vamos a utilizar como clave de ordenación, ¿vale? Es decir, este para nosotros que es un nombre 23 00:03:08,320 --> 00:03:15,680 lo vamos a utilizar por clave, pero ¿qué ocurre? Que realmente en un registro no tendríais un solo 24 00:03:15,680 --> 00:03:20,760 campo que es Carmen, sino que podríais tener varios campos, ¿vale? Podríais tener un campo DNI, 25 00:03:20,760 --> 00:03:28,120 un campo nombre, un campo apellidos, un campo fecha de nacimiento, dirección, etcétera. Es decir, 26 00:03:28,120 --> 00:03:34,600 que esto que aquí aparece con un solo valor, el valor del nombre y que va a hacer las veces de 27 00:03:34,600 --> 00:03:40,680 clave, realmente debería ser un conjunto de campos, ¿vale? Porque ya sabéis por la teoría que un 28 00:03:40,680 --> 00:03:49,720 registro es un conjunto de campos. Pero, insisto, por simplicidad aquí vamos a coger solamente un dato que 29 00:03:49,720 --> 00:04:00,160 es el nombre de la persona que a la vez nos va a servir para resolver el ejercicio. Entonces, como el nombre 30 00:04:00,160 --> 00:04:09,800 de la persona es el campo clave, ¿vale? Se supone que vamos a ordenar secuencialmente el fichero de 31 00:04:09,800 --> 00:04:20,040 menor a mayor, ¿cómo se resolvería este ejercicio? Pues lo primero que tenemos que hacer es atender a 32 00:04:20,040 --> 00:04:26,920 las claves, que en este caso es un nombre, pero ya digo, puede ser un DNI, puede ser cualquier otro campo. 33 00:04:28,800 --> 00:04:36,480 Nos fijamos que el primer elemento de la tabla, perdón, sí, del fichero, mejor dicho, es Alfredo. 34 00:04:37,120 --> 00:04:46,800 Alfredo, por orden alfabético, es el primero, eso imagino que lo veis todos, ¿no? El registro que ocupa 35 00:04:46,800 --> 00:04:53,840 Alfredo es el registro número 2, por lo tanto, ¿qué debe indicar el puntero de cabecera? Pues el puntero 36 00:04:53,840 --> 00:05:00,160 de cabecera debe indicar que tiene que apuntar al registro número 2, porque ese es el primer registro 37 00:05:00,920 --> 00:05:10,480 de esta organización al que se debería dirigir un listado o la secuencia realmente del fichero, 38 00:05:10,480 --> 00:05:16,360 sería esa, aunque físicamente esté colocado, ¿vale? Veis que físicamente Carmen está antes que Alfredo, 39 00:05:16,360 --> 00:05:23,640 pero lógicamente no, lógicamente Alfredo, por orden alfabético, está colocado antes que Carmen, ¿vale? 40 00:05:23,640 --> 00:05:29,400 Y antes que Fernando y antes que Isabel, por eso es el puntero de cabecera apunta al primer registro, 41 00:05:29,400 --> 00:05:39,280 que es Alfredo. Cuando nos vamos a Alfredo, tenemos que saber cuál es el siguiente registro, es decir, 42 00:05:39,280 --> 00:05:45,440 si este es el puntero de cabecera que nos está apuntando a este registro, ¿qué debe indicar este puntero? 43 00:05:45,440 --> 00:05:52,160 Pues debe indicar la dirección al siguiente registro. Si ordenamos los nombres que nos quedan, que son 44 00:05:52,240 --> 00:05:59,960 Carmen, Fernando e Isabel, por orden alfabético, el siguiente sería Carmen. ¿Y qué lugar ocupa Carmen? 45 00:05:59,960 --> 00:06:07,960 Pues el registro número 1. Por lo tanto, Alfredo tendrá un apuntador al registro número 1. 46 00:06:09,680 --> 00:06:17,400 Cuando esta secuencia lógica ya ha sido ordenado, puntero de cabecera, Alfredo, y nos vamos al registro número 1, 47 00:06:17,400 --> 00:06:22,880 que es Carmen, se busca el siguiente en la secuencia. ¿Cuál es el siguiente en la secuencia? 48 00:06:22,880 --> 00:06:32,200 Pues el siguiente en la secuencia es Fernando. ¿Y qué lugar ocupa Fernando? Pues ocupa el registro número 3. 49 00:06:32,200 --> 00:06:38,840 Por lo tanto, el apuntador o el puntero tiene que estar indicando que es la posición 3. 50 00:06:39,800 --> 00:06:49,160 Inmediatamente, y ya de forma casi automática, nos vamos a Fernando, que indicará que Isabel, que es el siguiente registro, 51 00:06:49,160 --> 00:07:00,280 se encuentra en la posición número 4, como indica su registro. ¿Qué pasa con Isabel? ¿Qué pasa con este último nombre? 52 00:07:00,280 --> 00:07:06,280 Pues este último nombre es eso, el último nombre. Ya no hay más datos que ordenar. 53 00:07:06,800 --> 00:07:18,440 Cuando se haga el seguimiento de esta secuencia, se irá de esta forma. Este es el primero, este es el siguiente, 54 00:07:18,440 --> 00:07:27,880 este es el siguiente, y este es el siguiente. ¿Y qué dirá Isabel? Dirá, ya no hay más detrás de mí. 55 00:07:27,880 --> 00:07:35,320 ¿Y cómo indica Isabel que no hay? ¿Cómo indica el registro que detrás de Isabel no hay más? Con un 0. 56 00:07:36,320 --> 00:07:39,320 0 es el fin de secuencia lógica. 57 00:07:40,320 --> 00:07:48,320 Bueno, espero que haya quedado claro con este video la ordenación secuencial encadenada.