示例#1
0
        public Seznam <T> GetPosledni()
        {
            Seznam <T> dalsi = this;

            while (dalsi.Next != null)
            {
                dalsi = dalsi.Next;
            }
            return(dalsi);
        }
示例#2
0
        public void Append(Seznam <T> last)
        {
            Seznam <T> dalsi = this;

            while (dalsi.Next != null)
            {
                dalsi = dalsi.Next;
            }
            dalsi.Next = last;
        }
示例#3
0
        static void Main(string[] args)
        {
            //nacti vstup
            int  sirka = Ctecka.PrectiInt();
            int  vyska = Ctecka.PrectiInt();
            char znak;
            Dictionary <char, Seznam <Souradnice> > ht = new Dictionary <char, Seznam <Souradnice> >();

            //Console.ReadLine();
            for (int y = 0; y < vyska; y++)
            {
                for (int x = 0; x < sirka; x++)
                {
                    //vkladam do ht seznamy -> pismeno : pozice
                    Seznam <Souradnice> lss, nova = new Seznam <Souradnice>(new Souradnice(x, y), null);
                    znak = (char)Console.Read();
                    if (ht.TryGetValue(znak, out lss))
                    {
                        lss.Append(nova);
                    }
                    else
                    {
                        ht.Add(znak, nova);
                    }
                }
            }
            Console.ReadLine();
            String text = Console.ReadLine();
            //Console.WriteLine (text);
            //hledej
            Souradnice start = new Souradnice(0, 0), cil;
            int        delka = 0;

            for (int i = text.Length - 1; i >= 0; i--)
            {
                int prac = NajdiMin(text[i], start, out cil, ht);
                if (prac != -1)
                {
                    delka += prac + 1;
                    start  = cil;
                }
            }

            //vypis vystup
            Console.WriteLine(delka);
        }
示例#4
0
        public override string ToString()
        {
            String     vlak = "";
            Seznam <T> s    = this;

            if (s.Value != null)
            {
                vlak += s.Value;
                while (s.Next != null)
                {
                    s     = s.Next;
                    vlak += "->";
                    if (s.Value != null)
                    {
                        vlak += s.Value;
                    }
                }
                vlak += "->#";
            }
            return(vlak);
        }
示例#5
0
        //najde minimalni pocet kroku na ceste k zadanemu pismenu ze zadanych souradnic;
        //souradnici pismene vraci v parametru
        static int NajdiMin(char pismeno, Souradnice odkud, out Souradnice kam, Dictionary <char, Seznam <Souradnice> > tabulka)
        {
            kam = odkud;
            Seznam <Souradnice> seznam = null;

            if (tabulka.TryGetValue(pismeno, out seznam))
            {
                Souradnice s = seznam.Value;
                if (s != null)
                {
                    int min = odkud.vzdalenost(s);
                    kam = s;
                    while (seznam.Next != null)
                    {
                        seznam = seznam.Next;
                        s      = seznam.Value;
                        if (s != null)
                        {
                            int vzd = odkud.vzdalenost(s);
                            if (vzd < min)
                            {
                                kam = s;
                                min = vzd;
                            }
                        }
                    }
                    return(min);
                }
                else
                {
                    kam = null;
                    return(-1);
                }
            }
            else
            {
                kam = null;
                return(-1);
            }
        }
示例#6
0
 public Seznam(T value, Seznam <T> next)
 {
     this.val  = value;
     this.next = next;
 }