Ejemplo n.º 1
0
        public void Cal()
        {
            cycle.Clear();

            for (int i = 0; i < 13; i++)
            {
                //初始化为-1  用来区分头结点
                cycle.Add(-1);
            }

            //第一张肯定是1
            CycleLink <int> .Node node = cycle.GetNodeByIndex(1);
            node.data = 1;
            int index = 0;

            for (int i = 2; i <= 13; i++)
            {
                //设置其他位置的牌  头结点也计算进去了
                while (index < i)
                {
                    node = node.next;
                    if (node.data > 0)
                    {
                        continue;
                    }

                    index++;
                    if (node.data == 0)
                    {
                        index--;                //跳过头结点不能算
                    }
                }

                index     = 0;
                node.data = i;
            }
        }