コード例 #1
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public Type NextNode()   //设置下一结点为当前结点
 {
     if (current.Next != null)
     {
         current = current.Next;
     }
     return(current.Data);
 }
コード例 #2
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public void CreateHead(Type[] dt, int n)   //头插法生成n个结点
 {
     MakeEmpty();
     for (int i = 1; i <= n; i++)
     {
         head.Next = new CSListnode <Type>(dt[i - 1], head.Next);
     }
     current = head.Next;
 }
コード例 #3
0
ファイル: 链表.cs プロジェクト: faede/dsa
            public void CreateRear(Type[] dt, int n)   //尾插法生成n个结点
            {
                MakeEmpty();

                for (int i = 1; i <= n; i++)
                {
                    current.Next = new CSListnode <Type>(dt[i - 1]);
                    current      = current.Next;
                }
            }
コード例 #4
0
ファイル: 链表.cs プロジェクト: faede/dsa
            public Type Getdata(int i)   //返回第i个结点的数据
            {
                CSListnode <Type> p = head;
                int j = 0;

                while (p.Next != null && j < i)
                {
                    p = p.Next;
                    if (++j == i)
                    {
                        break;
                    }
                }
                return(p.Data);
            }
コード例 #5
0
ファイル: 链表.cs プロジェクト: faede/dsa
            public CSListnode <Type> Getnode(int i)  //返回第i个结点的地址
            {
                CSListnode <Type> p = head;
                int j = 0;

                while (p.Next != null && j < i)
                {
                    p = p.Next;
                    if (++j == i)
                    {
                        break;
                    }
                }
                return(p);
            }
コード例 #6
0
ファイル: 链表.cs プロジェクト: faede/dsa
            public CSListnode <Type> Find(Type value)  //按给定值查找单链表
            {
                CSListnode <Type> p = head;

                while (p.Next != null)
                {
                    if (p.Data.Equals(value))
                    {
                        return(p);
                    }
                    else
                    {
                        p = p.Next;
                    }
                }
                return(null);
            }
コード例 #7
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public void Create(Type[] dt, int n, bool InsertInHead)   //生成n个结点
 {
     MakeEmpty();
     if (InsertInHead)
     {
         for (int i = 1; i <= n; i++)
         {
             Insert(dt[i - 1], 1);
         }
     }
     else
     {
         for (int i = 1; i <= n; i++)
         {
             Insert(dt[i - 1], i);
         }
     }
     current = head;
 }
コード例 #8
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public void SetCurrent(CSListnode <Type> cp)
 {
     current = cp;
 }                                                               //设置当前指针
コード例 #9
0
ファイル: 链表.cs プロジェクト: faede/dsa
 private CSListnode <Type> current;  //指向当前节点的指针
                                     //--------------------------------------------------------------------------------
 public CSList()
 {
     head    = new CSListnode <Type>();
     current = head;
 }
コード例 #10
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public CSListnode(Type data, CSListnode <Type> next)
 {
     this.data = data;
     this.next = next;
 }
コード例 #11
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public CSListnode(Type data)
 {
     this.data = data;
     next      = null;
 }
コード例 #12
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public void MakeEmpty()   //清空单链表
 {
     head.Next = null;
     current   = head;
 }
コード例 #13
0
ファイル: 链表.cs プロジェクト: faede/dsa
 //--------------------------------------------------------------------------------
 public CSListnode()
 {
     //data=0;
     next = null;
 }
コード例 #14
0
ファイル: 链表.cs プロジェクト: faede/dsa
 public Type FirstNode()   //设置头结点为当前结点
 {
     current = head;
     return(current.Data);
 }