예제 #1
0
 public void Show()
 {
     for (LLKSTT_60_S_node <T> i = First; i != null; i = i.Next)
     {
         Console.WriteLine(i.Value.ToString());
     }
 }
예제 #2
0
            public LLKSTT_60_S_node <T> AddLast(T value)
            {
                LLKSTT_60_S_node <T> temp = new LLKSTT_60_S_node <T>(value);

                AddLast(temp);
                return(temp);
            }
예제 #3
0
            int dodai()
            {
                int dodai = 0;

                for (LLKSTT_60_S_node <T> i = First; i != null; i = i.Next)
                {
                    dodai++;
                }
                return(dodai);
            }
예제 #4
0
 public void AddFirst(LLKSTT_60_S_node <T> node)
 {
     if (First == null)
     {
         First = node;
     }
     else
     {
         node.Next = First;
         First     = node;
     }
 }
예제 #5
0
 public void AddLast(LLKSTT_60_S_node <T> node)
 {
     if (First == null)
     {
         First = node;
     }
     else
     {
         LLKSTT_60_S_node <T> temp = First;
         while (temp.Next != null)
         {
             temp = temp.Next;
         }
         temp.Next = node;
     }
 }
예제 #6
0
 public void AddAfter(LLKSTT_60_S_node <T> node, LLKSTT_60_S_node <T> newNode)
 {
     if (First != null)
     {
         LLKSTT_60_S_node <T> temp = First;
         while (temp != null)
         {
             if (temp.Value.Equals(node.Value))
             {
                 newNode.Next = temp.Next;
                 temp.Next    = newNode;
                 break;
             }
             temp = temp.Next;
         }
     }
 }
예제 #7
0
            public LLKSTT_60_S_node <T> Find(T value)
            {
                LLKSTT_60_S_node <T> i = First;

                while (i != null)
                {
                    if (i.Value.Equals(value))
                    {
                        break;
                    }
                    i = i.Next;
                }
                if (i != null)
                {
                    return(i);
                }
                return(new LLKSTT_60_S_node <T>(value));
            }
예제 #8
0
        /*
         * /// <summary>
         * /// singly linked list node is int
         * /// </summary>
         * class LLKSTT_60_S
         * {
         #region Khởi tạo
         *  public LLKSTT_60_S()
         *  {
         *      next = null;
         *  }
         *  public LLKSTT_60_S(int p)
         *  {
         *      this.info = p;
         *      this.next = null;
         *  }
         #endregion
         #region Thuộc tính
         *  public LLKSTT_60_S next;
         *  public int info;
         *  /// <summary>
         *  /// Trả số lượng node được gắn đằng sau
         *  /// </summary>
         *  public int Count
         *  {
         *      get
         *      {
         *          return dodai();
         *      }
         *  }
         #endregion
         #region Phương thức
         *  /// <summary>
         *  /// Gắn node mới vào cuối danh sách
         *  /// </summary>
         *  /// <param name="node"> là node mới cần gắn</param>
         *  public void AddLast(LLKSTT_60_S node)
         *  {
         *      if (this == null)
         *      {
         *          this.info = node.info;
         *          this.next = node.next;
         *      }
         *      else
         *      {
         *          LLKSTT_60_S i;
         *          for (i = this; i.next != null; i = i.next) ;
         *          i.next = node;
         *      }
         *  }
         *  /// <summary>
         *  /// Gắn value mới vào cuối danh sách
         *  /// </summary>
         *  /// <param name="value"> là gia tri mới cần gắn</param>
         *  /// <returns>trả về node chứa giá trị value</returns>
         *  public LLKSTT_60_S AddLast(int value)
         *  {
         *
         *      LLKSTT_60_S temp = new LLKSTT_60_S();
         *      temp.info = value;
         *      if (this == null)
         *      {
         *          this.info = temp.info;
         *          this.next = null;
         *      }
         *      else
         *      {
         *          LLKSTT_60_S i;
         *          for (i = this; i.next != null; i = i.next) ;
         *          i.next = temp;
         *      }
         *      return temp;
         *  }
         *  /// <summary>
         *  /// Gắn node mới vào đầu danh sách
         *  /// </summary>
         *  /// <param name="node"> là node mới cần gắn</param>
         *  public void AddFist(LLKSTT_60_S node)
         *  {
         *      if (this == null)
         *      {
         *          this.info = node.info;
         *          this.next = node.next;
         *      }
         *      else
         *      {
         *          LLKSTT_60_S q = new LLKSTT_60_S();
         *          q.info = this.info;
         *          q.next = this.next;
         *          node.next = q;
         *          this.info = node.info;
         *          this.next = node.next;
         *      }
         *  }
         *  /// <summary>
         *  /// Gắn value mới vào đầu danh sách
         *  /// </summary>
         *  /// <param name="value"> là gia tri mới cần gắn</param>
         *  /// <returns>trả về node chứa giá trị value</returns>
         *  public LLKSTT_60_S AddFist(int value)
         *  {
         *      LLKSTT_60_S temp = new LLKSTT_60_S();
         *      temp.info = value;
         *      if (this == null)
         *      {
         *          this.info = temp.info;
         *          this.next = temp.next;
         *      }
         *      else
         *      {
         *          LLKSTT_60_S q = new LLKSTT_60_S();
         *          q.info = this.info;
         *          q.next = this.next;
         *          temp.next = q;
         *          this.info = temp.info;
         *          this.next = temp.next;
         *      }
         *      return temp;
         *  }
         *  private int dodai()
         *  {
         *      int dodai = 0;
         *      for (LLKSTT_60_S i = this; i != null; i = i.next) dodai++;
         *      return dodai;
         *  }
         *  /// <summary>
         *  /// gắn value vào trước node
         *  /// </summary>
         *  /// <param name="node">node xác định</param>
         *  /// <param name="value">node cần gắn</param>
         *  public void AddBefore(LLKSTT_60_S node, LLKSTT_60_S value)
         *  {
         *      LLKSTT_60_S i;
         *      LLKSTT_60_S temp = new LLKSTT_60_S();
         *      temp = value;
         *      for (i = this; i.next.info != node.info && i != null; i = i.next) ;
         *      if (i != null)
         *      {
         *          temp.next = i.next;
         *          i.next = temp;
         *      }
         *  }
         *  /// <summary>
         *  /// gắn value vào sau node
         *  /// </summary>
         *  /// <param name="node">node xác định</param>
         *  /// <param name="value">node cần gắn</param>
         *  public void AddAfter(LLKSTT_60_S node, LLKSTT_60_S value)
         *  {
         *      LLKSTT_60_S i;
         *      LLKSTT_60_S temp = new LLKSTT_60_S();
         *      temp = value;
         *      for (i = this; i.info != node.info && i != null; i = i.next) ;
         *      if (i != null)
         *      {
         *          temp.next = i.next;
         *          i.next = temp;
         *      }
         *  }
         *  /// <summary>
         *  /// gắn value vào trước node
         *  /// </summary>
         *  /// <param name="node">node xác định</param>
         *  /// <param name="value">node cần gắn</param>
         *  /// <returns>trả về node chứa giá trị value</returns>
         *  public LLKSTT_60_S AddBefore(LLKSTT_60_S node, int value)
         *  {
         *      LLKSTT_60_S i;
         *      LLKSTT_60_S temp = new LLKSTT_60_S();
         *      temp.info = value;
         *      for (i = this; i.next.info != node.info && i != null; i = i.next) ;
         *      if (i != null)
         *      {
         *          temp.next = i.next;
         *          i.next = temp;
         *      }
         *      return temp;
         *  }
         *  /// <summary>
         *  /// gắn value vào trước node
         *  /// </summary>
         *  /// <param name="node">node xác định</param>
         *  /// <param name="value">node cần gắn</param>
         *  /// <returns>trả về node chứa giá trị value</returns>
         *  public LLKSTT_60_S AddAfter(LLKSTT_60_S node, int value)
         *  {
         *      LLKSTT_60_S i;
         *      LLKSTT_60_S temp = new LLKSTT_60_S();
         *      temp.info = value;
         *      for (i = this; i.info != node.info && i != null; i = i.next) ;
         *      if (i != null)
         *      {
         *          temp.next = i.next;
         *          i.next = temp;
         *      }
         *      return temp;
         *  }
         *  public void Clear()
         *  {
         *      this.next = null; ;
         *      this.info = default(int);
         *  }
         #endregion
         * }*/
        public static void tuan09_main()
        {
            LLKSTT_60_S <int>      list = new LLKSTT_60_S <int>();
            LLKSTT_60_S_node <int> p, q;

            p = new LLKSTT_60_S_node <int>(4);
            list.AddLast(p);
            p = new LLKSTT_60_S_node <int>(5);
            list.AddLast(p);
            p = new LLKSTT_60_S_node <int>(3);
            list.AddFirst(p);
            list.AddLast(6);
            list.AddFirst(1);
            q = new LLKSTT_60_S_node <int>(2);
            list.AddBefore(p, q);
            q = new LLKSTT_60_S_node <int>(7);
            list.AddAfter(p, q);
            list.AddAfter(p, 3);
            list.Show();
            Console.ReadKey();
        }
예제 #9
0
 public void AddBefore(LLKSTT_60_S_node <T> node, LLKSTT_60_S_node <T> newNode)
 {
     if (First != null)
     {
         LLKSTT_60_S_node <T> temp = First;
         if (First.Value.Equals(node.Value))
         {
             AddFirst(newNode);
         }
         else
         {
             while (temp != null)
             {
                 if (temp.Next.Value.Equals(node.Value))
                 {
                     newNode.Next = temp.Next;
                     temp.Next    = newNode;
                     break;
                 }
                 temp = temp.Next;
             }
         }
     }
 }
예제 #10
0
 public LLKSTT_60_S(LLKSTT_60_S_node <T> node)
 {
     First = node;
 }
예제 #11
0
            public void AddAfter(LLKSTT_60_S_node <T> node, T value)
            {
                LLKSTT_60_S_node <T> temp = new LLKSTT_60_S_node <T>(value);

                AddAfter(node, temp);
            }
예제 #12
0
            public void AddBefore(LLKSTT_60_S_node <T> node, T value)
            {
                LLKSTT_60_S_node <T> temp = new LLKSTT_60_S_node <T>(value);

                AddBefore(node, temp);
            }