//questão 2. public string Editor(string palavra, Fila_Char fila) { for (int i = 0; i < palavra.Length; i++) { if (palavra[i] == '#')// tirar o ultimo elemento { fila.Tirar_ult_ele(); } else if (palavra[i] == '$')//inserir duplicado { CHAR aux = new CHAR(palavra[i + 1]); fila.Inserir(aux); } if (palavra[i] != '#' && palavra[i] != '$') //inserir os restantes dos elementos. { CHAR aux = new CHAR(palavra[i]); fila.Inserir(aux); } } string texto; //desenfilerar. while (!fila.Verifica_Vazio()) { CHAR aux; aux = fila.Tirar_ele(); texto += Convert.ToString(aux.Carac); } return(texto); }
//Tirar o primeiro elemento da fila. public CHAR Tirar_ele() { if (!Verifica_Vazio()) { CHAR aux = primeiro.Proximo; primeiro.Proximo = aux.Proximo; aux.Proximo = null; return(aux); } return(null); }
//Tirar o ultimo elemento da fila. public CHAR Tirar_ult_ele() { if (!Verifica_Vazio()) { CHAR aux = primeiro.Proximo; while (aux.Proximo != ultimo) { aux = aux.Proximo; } CHAR aux1 = aux.Proximo; aux = ultimo; return(aux1); } return(null); }
//Inserir novo elemento no final. public CHAR Inserir(CHAR val) { ultimo.Proximo = val; val = ultimo; return(ultimo); }
//Construtor public Fila_Char() { primeiro = new CHAR(' '); ultimo = primeiro; }