龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

C#版数据结构练习顺序、链式存储结构

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
下面以C#来学习数据结构,数据结构是个非常高深的东西,多学习下,下面是源码: C# Code [http://www.xueit.com] using System; using System.Collections.Generic; using System.Linq; using System.Text; /* *********

下面以C#来学习数据结构,数据结构是个非常高深的东西,多学习下,下面是源码:

C# Code [http://www.xueit.com]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/************************************************************************/
/* 练习目的:顺序、链式存储结构
 *日期:2009-4-9 12:49:54
 *作者:程序虫
 * 
/************************************************************************/
namespace Linear
{
    //泛型顺序存储结构
    class LSeqStructure<T>
    {
        //T 代表数据元素的存储表示,数组代表数据元素的存放
        T[] data;
        int i;

        //初始化顺序表长度
        public LSeqStructure(int size)
        {
            data = new T[size];
        }

        //添加一个元素
        public void addData(T var)
        {
            data[i  ] = var;
        }

        //显示数据
        public void displayData()
        {
            for (int j = 0; j < data.Length;j   )
            {
                Console.WriteLine(data[j]   "");
            }
        }

    }


    //泛型链式存储
    class LinkedNode<T>
    {
        T data;
        //通过引用将随机存放的数据链接起来
        LinkedNode<T> next;
        public LinkedNode(T val)
        {
            data = val;
            next = null;
        }

        //存放数据
        public T Data
        {
            get
            {
                return data;
            }
            set
            {
                data = value;
            }
        }

        public LinkedNode<T> Next
        {
            get
            {
                return next;
            }
            set
            {
                next = value;
            }
        }
    }

    //数据元素关系的存储表示
    class LinkedStructure<T>
    {
        LinkedNode<T> first; //第一个元素
        LinkedNode<T> current;//当前元素
        
        //通过构造函数初始化链表
        public LinkedStructure()
        {
            first = null;
        }

        //添加一个元素
        public  void addData(LinkedNode<T> var)
        {
            if (first==null)
            {
                first = var;
                current = var;
                return;
            }
            else
            {
                current.Next = var;
                current = var;
            }
        }
        //显示数据
        public void displayData()
        {
            current = first;
            while (current!=null)
            {
                Console.WriteLine(current.Data   "");
                current = current.Next;
            }
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            string s1 = "red";
            string s2 = "blue";
            string s3 = "yellow";
            //顺序表实例化
            LSeqStructure<string> s = new LSeqStructure<string>(3);
            s.addData(s1);
            s.addData(s2);
            s.addData(s3);
            s.displayData();

            string s4 = "Green";
            string s5 = "While";
            string s6= "Black";
            //链表初始化
            LinkedStructure<string> l = new LinkedStructure<string>();
            l.addData(new LinkedNode<string>(s4));
            l.addData(new LinkedNode<string>(s5));
            l.addData(new LinkedNode<string>(s6));
            l.displayData();
        }
    }
}

挺好的练习!

精彩图集

赞助商链接