public class Chain
{
//Chain proporty
public string ID;
public string name;
public string text;
public DateTime time;
//Chain relation
private object lastObj;
private object nextObj;
public object Next
{
get{return nextObj;}
set{nextObj=value;}
}
public object Previous
{
get{return lastObj;}
set{this.lastObj=value;}
}
public Chain(){}
}
public class ChainManager
{
int count;
Chain current;
public ChainManager(int num)
{
Chain fristChain = new Chain();
Chain chain = fristChain;
for (int i = 0; i < num-1; i++)
{
//chain property
chain.name = i.ToString();
//chain relation
Chain newChain=new Chain();
chain.Next = newChain;
newChain.Previous = chain;
chain = (Chain)chain.Next;
}
chain.name = "9";
chain.Next = fristChain;
fristChain.Previous = chain;
this.current = chain;
this.count = num;
}
public void Next()
{
current=(Chain)current.Next;
}
public void Previous()
{
current=(Chain)current.Previous;
}
public Chain CurrentChain
{
get { return current; }
set { current = value; }
}
public int Count
{
get { return count; }
}
}
{
//Chain proporty
public string ID;
public string name;
public string text;
public DateTime time;
//Chain relation
private object lastObj;
private object nextObj;
public object Next
{
get{return nextObj;}
set{nextObj=value;}
}
public object Previous
{
get{return lastObj;}
set{this.lastObj=value;}
}
public Chain(){}
}
public class ChainManager
{
int count;
Chain current;
public ChainManager(int num)
{
Chain fristChain = new Chain();
Chain chain = fristChain;
for (int i = 0; i < num-1; i++)
{
//chain property
chain.name = i.ToString();
//chain relation
Chain newChain=new Chain();
chain.Next = newChain;
newChain.Previous = chain;
chain = (Chain)chain.Next;
}
chain.name = "9";
chain.Next = fristChain;
fristChain.Previous = chain;
this.current = chain;
this.count = num;
}
public void Next()
{
current=(Chain)current.Next;
}
public void Previous()
{
current=(Chain)current.Previous;
}
public Chain CurrentChain
{
get { return current; }
set { current = value; }
}
public int Count
{
get { return count; }
}
}
关于这种结构的使用:
我曾经想做一个聊天的小程序,聊天需要展示保存数据,却不需要永久。所以说一个临时的存储空间就特别的需要,或者叫缓存。
这样的一个环形链表就能实现我所需要的功能,正向插入,反向查找。对于数据缓存来说还是非常不错的。