예제 #1
0
파일: Fila.cs 프로젝트: Rafaelle00/TI_SO
        public Elemento Retirar()
        {
            Elemento aux = this.prim.prox;

            if (aux != null)
            {
                this.prim.prox = aux.prox;
                aux.prox       = null;
                if (aux.Equals(this.ult))
                {
                    this.prim = this.ult;
                }
                return(aux);
            }
            else
            {
                return(null);
            }
        }
예제 #2
0
 private void Executar()
 {
     for (int i = 0; i < this.prioridades.Length; i++)
     {
         if (!this.prioridades[i].Vazia())
         {
             Elemento auxE = prioridades[i].Retirar();
             Processo auxP = (Processo)(IDados)auxE;
             if (auxP.Ciclo())
             {
                 finalizados.Inserir(auxP);
             }
             else
             {
                 this.prioridades[auxP.Qtd].Inserir(auxP);
             }
         }
     }
 }
예제 #3
0
        /// <summary>
        /// Metodo para retirar Processo
        /// </summary>
        /// <returns></returns>
        public Processo Retirar()
        {
            if (this.Vazia())
            {
                return(null);
            }

            Elemento aux = this.prim.Prox;

            this.prim.Prox = aux.Prox;
            if (aux.Prox != null)
            {
                aux.Prox = null;
            }
            else
            {
                this.ult = this.prim;
            }

            return(aux.Dados);
        }
예제 #4
0
        public IDados Retirar(Object o)
        {
            Elemento aux = this.prim;

            while ((aux.prox != null) && (!aux.prox.dados.Equals(o)))
            {
                aux = aux.prox;
            }
            if (aux.prox != null)
            {
                Elemento auxRet = aux.prox;
                aux.prox = auxRet.prox;
                if (auxRet == this.ult)
                {
                    this.ult = aux;
                }
                else
                {
                    auxRet.prox = null;
                }
                return(auxRet.dados);
            }
            return(null);
        }
예제 #5
0
 public Elemento(IDados d)
 {
     this.dados = d;
     this.prox  = null;
 }
예제 #6
0
파일: Fila.cs 프로젝트: Rafaelle00/TI_SO
 public Fila()
 {
     this.prim = new Elemento(null);
     this.ult  = this.prim;
 }
예제 #7
0
 /// <summary>
 /// Contrutor lista de processos
 /// </summary>
 /// <returns></returns>
 public ListaProcesso()
 {
     this.prim = new Elemento(null);
     this.ult  = this.prim;
 }
예제 #8
0
 /// <summary>
 /// Construtor do elemento
 /// </summary>
 /// <param name="d">Processo a se inserir</param>
 /// <returns></returns>
 public Elemento(Processo d)
 {
     this.dados = d;
     prox       = null;
 }
예제 #9
0
 public ListaCircular()
 {
     this.prim       = new Elemento(null);
     this.atual      = this.prim;
     this.atual.prox = this.prim;
 }