做一个数据结构的小练习:
Code
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();
}
}
}
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();
}
}
}