亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? calculator.cs

?? function recognition
?? CS
?? 第 1 頁 / 共 2 頁
字號(hào):
        }

        /// <summary>
        /// Elimina elementos vacios
        /// </summary>
        /// <param name="toRemove">Cadena para determinar si el nodo que la contiene debe ser borrado</param>
        /// <returns>Verdadero si debe ser borrado, de otro modo falso</returns>
        static bool RemoveEmpty(String toRemove)
        {
            if (toRemove == "")
                return true;
            return false;
        }

        /// <summary>
        /// Determina la prioridad de un operador
        /// </summary>
        /// <param name="oper">El operador a evaluar</param>
        /// <returns>El peso o prioridad del operador</returns>
        static int Priority(char oper)
        {
            if (oper == '*' || oper == '/' || oper == '%')
                return 1;
            else if (oper == '+' || oper == '-')
                return 0;

            return -1;
        }

        /// <summary>
        /// Determina si una cadena es un operador no suma ni resta
        /// </summary>
        /// <param name="elem">La cadena a evaluar</param>
        /// <returns>Verdadero si es un operador no suma ni resta, falso de otro modo</returns>
        static bool IsOperator(String elem)
        {
            if (elem == "*" || elem == "/" || elem == "%")
                return true;
            return false;
        }

        /// <summary>
        /// Identifica los bloques de operaciones a realizar
        /// </summary>
        /// <param name="postOrder">La expresión en formato postOrden</param>
        /// <returns>La lista de operaciones a realizar</returns>
        static List<R> IdentifyOperations(List<String> postOrder)
        {
            List<R> ListaR = new List<R>();
            if (postOrder.Count > 1)
            {
                ListaR = new List<R>();                 //Contiene la lista de R (resultados)
                int contadorR = 0;                              //Cuenta el numero de expresiones 
                int indiceOperador = -1;

                while (postOrder.Count > 1)
                {
                    indiceOperador = BuscaOperador(postOrder, ref contadorR);
                    Identifica(ref postOrder, indiceOperador, ref ListaR, contadorR);
                }
            }
            else
            {
                R errecita = new R();
                errecita.getFirst = postOrder[0];
                errecita.getSubindice = 1;
                ListaR.Add(errecita);
            }
            return ListaR;
        }

        /// <summary>
        /// Regresa el operador de la expresión
        /// </summary>
        /// <param name="Lista">La lista de los elementos en postorden</param>
        /// <param name="contadorR">El índice de las operaciones</param>
        /// <returns>El índice del operador</returns>
        static int BuscaOperador(List<String> Lista, ref int contadorR)
        {
            int indice = -1;

            for (int i = 0; i < Lista.Count; i++)
                if (Lista[i].Equals("+") || Lista[i].Equals("-") || Lista[i].Equals("*") || Lista[i].Equals("/") || Lista[i].Equals("%"))
                {
                    indice = i;
                    contadorR++;
                    break;
                }
            return indice;
        }

        /// <summary>
        /// Identifica las expresiones (operandos y operador)
        /// </summary>
        /// <param name="Lista">La lista de los elementos en postorden</param>
        /// <param name="indice">índice del operador</param>
        /// <param name="ListaR">La lista de relaciones</param>
        /// <param name="contadorR">>El índice de las operaciones</param>
        static void Identifica(ref List<String> Lista, int indice, ref List<R> ListaR, int contadorR)
        {
            indice = indice - 2;
            //el inicio de la expresion
            int indiceprincipal = indice;
            String first = null;
            String second = null;
            String op = null;

            first = Lista[indice];
            op = Lista[indice + 2];
            second = Lista[indice + 1];

            //Buscar R's en la expresion
            //Si hay R estadoR = true, sino false.
            bool estadoR = (first.Contains("R") || second.Contains("R"));
            //Si existe una R la expresion es dependiente

            //Removemos los nodos de la Lista, los que estan a la derecha de indiceprincipal
            for (int contador = 0; contador < 3; contador++)
                Lista.RemoveAt(indiceprincipal);

            //Sustituir la expresion por una R
            Lista.Insert(indiceprincipal, "R" + contadorR);

            //a?adir un nodo a la ListaR: expresion, número y estado
            AgregaR(first, second, op, ref ListaR, contadorR, estadoR);
        }

        /// <summary>
        /// Agrega un elemento a la lista de operaciones
        /// </summary>
        /// <param name="first">Primer operando</param>
        /// <param name="second">Segundo operando</param>
        /// <param name="op">Operador</param>
        /// <param name="ListaR">Lista de operaciones a rellenar</param>
        /// <param name="contadorR">índice de la operación</param>
        static void AgregaR(String first, String second, String op, ref List<R> ListaR, int contadorR, bool estadorR)
        {
            R objeto = new R();

            objeto.getSubindice = contadorR;
            objeto.getFirst = first;
            objeto.getSecond = second;
            objeto.getOp = op;

            ListaR.Add(objeto);
        }

        /// <summary>
        /// Regresa una lista de operaciones en una matriz de acuerdo a tiempos y procesos
        /// </summary>
        /// <param name="operations">La lista de operaciones</param>
        /// <param name="process">El número de procesos permisibles</param>
        /// <returns></returns>
        static String[,] Organize(List<R> operations, int process)
        {
            List<String>[] table = new List<String>[process];

            for (int i = 0; i < process; i++)
                table[i] = new List<String>();

            List<R> helpList = new List<R>();

            while (operations.Count != 0)
            {
                helpList.Clear();

                for (int i = 0; i < process; i++)
                {
                    int j = 0;

                    foreach (R errecita in operations)
                    {
                        if (errecita.getOp != null)
                        {
                            if (errecita.getFirst[0] != 'R' && errecita.getSecond[0] != 'R')
                            {
                                table[i].Add("R" + errecita.getSubindice + "= " + errecita.getFirst + errecita.getOp + errecita.getSecond);
                                helpList.Add(errecita);
                                operations.RemoveAt(j);
                                break;
                            }
                            else
                            {
                                bool flag = false;
                                if (errecita.getFirst[0] == 'R' && (Independent(ref helpList, ref operations, int.Parse(errecita.getFirst.Substring(1, errecita.getFirst.Length - 1)))))
                                    flag = true;

                                if (errecita.getFirst[0] != 'R')
                                    flag = true;

                                if ((errecita.getSecond[0] != 'R' && flag) || (flag && errecita.getSecond[0] == 'R' && (Independent(ref helpList, ref operations, int.Parse(errecita.getSecond.Substring(1, errecita.getSecond.Length - 1))))))
                                {
                                    table[i].Add("R" + errecita.getSubindice + "= " + errecita.getFirst + errecita.getOp + errecita.getSecond);
                                    helpList.Add(errecita);
                                    operations.RemoveAt(j);
                                    break;
                                }
                            }
                        }
                        else
                        {
                            table[i].Add("R" + errecita.getSubindice + "= " + errecita.getFirst);
                            operations.RemoveAt(0);
                            break;
                        }
                        j++;
                    }
                }
            }

            #region Conversión de arreglo de listas a matriz
            int max = 0;
            for (int i = 0; i < process; i++)
                if (table[i].Count > max)
                    max = table[i].Count;

            String[,] result = new String[process, max];

            for (int i = 0; i < process; i++)
            {
                String[] preTable = table[i].ToArray();
                for (int j = 0; j < max; j++)
                {
                    if (j < preTable.Length)
                        result[i, j] = preTable[j];
                    else
                        result[i, j] = "";
                }
            }
            #endregion

            return result;
        }

        /// <summary>
        /// Determina si un operando deja de ser dependiente
        /// </summary>
        /// <param name="helpList">Los elementos que se a?aden en la misma columna del tiempo</param>
        /// <param name="relations">La lista de relaciones que no han sido usadas</param>
        /// <param name="indexOfR">El índice del cual se solía ser dependiente</param>
        /// <returns>Verdadero si el operando es libre de salir, falso de otro modo</returns>
        static bool Independent(ref List<R> helpList, ref List<R> relations, int indexOfR)
        {
            foreach (R relation in relations)
                if (relation.getSubindice == indexOfR)
                    return false;

            foreach (R relation in helpList)
                if (relation.getSubindice == indexOfR)
                    return false;

            return true;
        }
    }

    class R
    {
        int subindice = 0;
        String First = null;
        String Op = null;
        String Second = null;

        public int getSubindice
        {
            get { return this.subindice; }
            set { this.subindice = value; }
        }

        public String getFirst
        {
            get { return this.First; }
            set { this.First = value; }
        }

        public String getOp
        {
            get { return this.Op; }
            set { this.Op = value; }
        }

        public String getSecond
        {
            get { return this.Second; }
            set { this.Second = value; }
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区三区二区| 91蜜桃免费观看视频| 日韩精品一区二区三区老鸭窝| 亚洲国产你懂的| 欧美军同video69gay| 无码av免费一区二区三区试看 | 欧美一级黄色片| 另类人妖一区二区av| 26uuu亚洲综合色欧美| 国产成人av一区二区| 亚洲欧美激情在线| 欧美一区二区二区| 国产成人在线观看免费网站| 亚洲女爱视频在线| 欧美精品日韩综合在线| 激情久久五月天| 中文字幕一区二区三区四区不卡 | 91久久精品国产91性色tv| 亚洲福利一区二区三区| 欧美成人a在线| 成人av在线电影| 婷婷丁香激情综合| 欧美国产一区在线| 51精品国自产在线| 成人性视频网站| 奇米影视在线99精品| 国产精品免费久久| 欧美一卡二卡在线观看| 99久久国产免费看| 久久精品久久综合| 亚洲综合免费观看高清在线观看| 日韩三级免费观看| 欧美综合一区二区| 国产成人免费在线观看不卡| 亚洲福利国产精品| 国产精品成人网| 精品国产乱码久久| 欧美日韩激情一区二区| 99这里只有久久精品视频| 日本网站在线观看一区二区三区| 中文字幕国产一区| 日韩视频免费观看高清完整版| 色综合视频在线观看| 国产精品资源网站| 日本欧美一区二区| 亚洲线精品一区二区三区| 国产精品久久午夜夜伦鲁鲁| 日韩欧美在线观看一区二区三区| 色猫猫国产区一区二在线视频| 国产一区999| 蜜桃视频一区二区| 午夜日韩在线电影| 一区二区三区在线视频播放| 亚洲国产精品成人久久综合一区 | 国产天堂亚洲国产碰碰| 欧美一区二区视频网站| 欧美体内she精高潮| k8久久久一区二区三区| 国产98色在线|日韩| 国产一区91精品张津瑜| 激情丁香综合五月| 激情另类小说区图片区视频区| 日本欧美在线看| 天天av天天翘天天综合网| 亚洲自拍另类综合| 亚洲一区二区在线视频| 亚洲香肠在线观看| 亚洲综合网站在线观看| 亚洲精品美国一| 亚洲欧美激情在线| 一区二区国产视频| 亚洲第四色夜色| 亚洲综合一区二区三区| 亚洲妇女屁股眼交7| 婷婷一区二区三区| 午夜视频一区二区三区| 全国精品久久少妇| 精久久久久久久久久久| 国产精品中文字幕一区二区三区| 国内一区二区在线| 国产激情91久久精品导航| 国产一区啦啦啦在线观看| 韩国一区二区视频| 国产精品羞羞答答xxdd| heyzo一本久久综合| 91老司机福利 在线| 精品视频一区二区三区免费| 欧美日韩一区不卡| 日韩精品一区二区三区中文精品| 欧美不卡视频一区| 亚洲国产精品激情在线观看 | 久久综合久色欧美综合狠狠| 国产视频一区不卡| 成人欧美一区二区三区白人| 亚洲美女淫视频| 午夜久久电影网| 加勒比av一区二区| 成人国产亚洲欧美成人综合网| 日本韩国精品在线| 在线电影欧美成精品| 精品国产伦一区二区三区观看体验| 久久久精品人体av艺术| 亚洲精品菠萝久久久久久久| 天堂va蜜桃一区二区三区漫画版| 国产在线精品一区在线观看麻豆| 成人午夜在线免费| 欧美日韩精品三区| 国产欧美一区在线| 性做久久久久久| 高清在线观看日韩| 在线播放一区二区三区| 久久男人中文字幕资源站| 曰韩精品一区二区| 精品一区二区三区在线播放视频| 波多野结衣在线一区| 777亚洲妇女| 国产精品久久久久久久久动漫 | 久久麻豆一区二区| 亚洲在线免费播放| 国产电影一区在线| 欧美美女喷水视频| 国产精品嫩草影院av蜜臀| 日本aⅴ免费视频一区二区三区| 国产高清在线观看免费不卡| 在线观看www91| 国产日韩精品视频一区| 日韩精品1区2区3区| aaa国产一区| 国产亚洲精品中文字幕| 亚洲成人资源网| 99精品在线免费| 久久精品人人做| 男人的天堂亚洲一区| 一本到不卡精品视频在线观看 | 亚洲乱码中文字幕| 国产精品一卡二| 日韩精品一区二区三区四区视频 | 日韩午夜av电影| 亚洲激情图片qvod| 成人午夜电影小说| 精品免费视频.| 日韩中文字幕91| 欧美日韩一区二区欧美激情| 亚洲欧美激情一区二区| 成人手机在线视频| 久久嫩草精品久久久精品| 亚洲成av人片www| 成人av影院在线| 欧美一级欧美三级| 欧美妇女性影城| 亚洲美女屁股眼交| 国产精品一区一区| 欧美大片国产精品| 五月天激情综合网| 欧美日韩中文字幕一区| 亚洲九九爱视频| 91香蕉视频mp4| 亚洲欧美国产77777| 99视频热这里只有精品免费| 欧美激情综合在线| 国产成人av一区二区三区在线观看| 欧美大尺度电影在线| 日韩国产欧美在线播放| 欧美片在线播放| 午夜精品久久久久久久蜜桃app| 欧美综合一区二区| 亚洲一区二区三区小说| 欧美日韩在线播放一区| 亚洲一二三区在线观看| 欧美日韩精品综合在线| 丝袜脚交一区二区| 日韩一区二区影院| 老司机午夜精品| 精品第一国产综合精品aⅴ| 国产一区999| 国产精品午夜电影| 91蜜桃网址入口| 亚洲一区成人在线| 欧美精品国产精品| 极品少妇一区二区| 久久青草欧美一区二区三区| 丁香六月综合激情| 亚洲图片激情小说| 欧美色网一区二区| 日本女人一区二区三区| xnxx国产精品| caoporn国产一区二区| 亚洲午夜激情av| 日韩精品中午字幕| 成人黄色国产精品网站大全在线免费观看 | 国内精品第一页| 亚洲国产精品99久久久久久久久| 97久久精品人人做人人爽| 亚洲午夜精品一区二区三区他趣| 日韩免费视频线观看| 国产大陆a不卡| 亚洲宅男天堂在线观看无病毒| 91精品国产综合久久精品图片| 国产乱色国产精品免费视频| 中文字幕一区二区三区不卡|