• 将链表逆序(Revert)的C#实现


    // 链表类
    class LL
    {
        public string value;
        public LL link;
        // used for outputing the link data
        public void OutPut()
        {
            Console.Write(value);
            if (link != null)
            {
                Console.Write(",");
                link.OutPut();
            }
        }
    }

    逆序:
    private LL Revert(LL t)
    {
        LL newList = null;
        while (t != null)
        {
            LL mid = new LL();
            mid.value = t.value;
            mid.link = newList;

            newList = mid;
            t = t.link;
        }
        return newList;

    全部代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace _08ConsoleTest
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Test t 
    = new Test();
                t.T1();
            }



        }

        
    public class Test
        
    {
            
    public void T1()
            
    {
                
    // Create a Link 
                LL l = CreateLL("A");
                LL l2 
    = CreateLL("B");
                l.link 
    = l2;
                l2.link 
    = CreateLL("C");

                OutputLL(l);    
    // Output the original link: A B C
                LL revertLL = Revert(l);
                OutputLL(revertLL);  
    // Output the target link: C B A
                OutputLL(l);    // Output the original link: A B C (The original link will not change) 
            }

            
    private void OutputLL(LL l)
            
    {
                l.OutPut();
                Console.WriteLine(
    "---------------");
            }

            
    private LL Revert(LL t)
            
    {
                LL newList 
    = null;
                
    while (t != null)
                
    {
                    LL mid 
    = new LL();
                    mid.value 
    = t.value;
                    mid.link 
    = newList;

                    newList 
    = mid;
                    t 
    = t.link;
                }

                
    return newList;
            }

            
    private LL CreateLL(string a)
            
    {
                LL l 
    = new LL();
                l.value 
    = a;
                
    return l;
            }

        }

        
    // 链表类
        class LL
        
    {
            
    public string value;
            
    public LL link;
            
    // used for outputing the link data
            public void OutPut()
            
    {
                Console.Write(value);
                
    if (link != null)
                
    {
                    Console.Write(
    ",");
                    link.OutPut();
                }

            }

        }

    }
  • 相关阅读:
    ckplayer-超酷网页视频播放器的使用
    我的第一篇博文(Winfrom下WebBrowser控件的使用)
    estore商城案例(四、五)------添加购物车&购物车显示/生成订单&在线支付
    estore商城案例(三)------Filter过滤器:自动登录&权限管理
    estore商城案例(二)------登录&添加商品&商品列表(下)
    estore商城案例(二)------登录&添加商品&商品列表(上)
    myeclipse2014在线安装aptana
    estore商城案例(一)------用户注册&邮件激活(下)
    estore商城案例(一)------用户注册&邮件激活(上)
    使用指南
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2369644.html
Copyright © 2020-2023  润新知