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; }
}
}
关于这种结构的使用:
我曾经想做一个聊天的小程序,聊天需要展示保存数据,却不需要永久。所以说一个临时的存储空间就特别的需要,或者叫缓存。
这样的一个环形链表就能实现我所需要的功能,正向插入,反向查找。对于数据缓存来说还是非常不错的。