博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#环形链表

Posted on 2007-01-11 16:27  城市兔子  阅读(3682)  评论(2编辑  收藏  举报
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; }
        }
    }

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