国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

鏈表類具有哈希表的功能

2024-07-21 02:25:32
字體:
來源:轉載
供稿:網友

using system;

namespace study
{
 /// <summary>
 /// cchain 的摘要說明。
 /// </summary>
 public class cchain
 {
  
  public class cchainnode
  {
   public object data;
   public cchainnode nextchainnode;
   public cchainnode previouschainnode;
   public object tag;
   public string key;

   public cchainnode()
   {
    this.data=null;
    this.tag=null;
    this.key=null;
    this.nextchainnode=this.previouschainnode=null;
   }

   public cchainnode(object vdata,object vtag,string vkey)
   {
    this.data=vdata;
    this.tag=vtag;
    this.key=vkey;
    this.nextchainnode=this.previouschainnode=null;
   }
  }


  public class cchainiterator
  {
   private cchainnode pcurrentchainnode,pfirstchainnode,plastchainnode;
   private bool pbfirst,pblast;

   public cchainiterator(cchainnode vfirstchainnode,cchainnode vlastchainnode)
   {
    this.pcurrentchainnode=this.pfirstchainnode=this.plastchainnode=null;
    if(vfirstchainnode!=null)
    {
     pcurrentchainnode=pfirstchainnode=vfirstchainnode;
     pbfirst=false;
    }
    if(vlastchainnode!=null)
    {
     pcurrentchainnode=plastchainnode=vlastchainnode;
     pblast=false;
    }
   }

   public cchainnode currentchainnode
   {
    get
    {
     return this.pcurrentchainnode;
    }
   }
   
   public bool nextchainnode()
   {
    if(this.pfirstchainnode==null)
    {
     return false;
    }
    if(pcurrentchainnode==pfirstchainnode && pbfirst==false)
    {
     pbfirst=true;
     return true;  
    }
    else
    {
     pcurrentchainnode=pcurrentchainnode.nextchainnode;
     if(pcurrentchainnode ==null)
     {
      return false;
     }
     else
     {
      return true;
     }
    }
   }

   public bool previouschainnode()
   {
    if(this.plastchainnode==null)
    {
     return false;
    }
    if(pcurrentchainnode==plastchainnode && pblast==false)
    {
     pblast=true;
     return true;  
    }
    else
    {
     pcurrentchainnode=pcurrentchainnode.previouschainnode;
     if(pcurrentchainnode ==null)
     {
      return false;
     }
     else
     {
      return true;
     }
    }
   }
  }
  

  public cchainnode firstchainnode;
  public cchainnode lastchainnode;
  public cchainnode currentchainnode;

  public cchain()
  {
   this.firstchainnode=this.lastchainnode=this.currentchainnode =null;
  }

  ~cchain()
  {

  }

  public bool isempty()
  {
   if(this.firstchainnode==null)
   {
    return true;
   }
   else
   {
    return false;
   }
  }

  public bool appendchainnode(cchainnode vchainnode)
  { 
   
   if(vchainnode==null)
   {
    return false;
   }
   else
   {
    if(this.firstchainnode==null)
    {
     this.firstchainnode=vchainnode;
     this.firstchainnode.previouschainnode=null;
     this.firstchainnode.nextchainnode=null;
     this.lastchainnode=this.currentchainnode=this.firstchainnode;
    }
    else
    {
     this.currentchainnode.nextchainnode=vchainnode;
     vchainnode.previouschainnode=this.currentchainnode;
     vchainnode.nextchainnode=null;
     this.lastchainnode=this.currentchainnode=vchainnode;
    }
    return true;
   }
  }

  public bool insertchainnode(int index,cchainnode vchainnode)
  { 
   cchainnode pcn;
   int pcount=0;
   cchain.cchainiterator pci=new cchainiterator(this.firstchainnode,null);
   if(vchainnode==null || index<0)
   {
    return false;
   }
   if(index==0)
   {
    pcn=this.firstchainnode;
    vchainnode.nextchainnode=pcn;
    pcn.previouschainnode=vchainnode;
    this.firstchainnode=vchainnode;
    vchainnode.previouschainnode=null;
    return true;
   }
   while(pci.nextchainnode()==true)
   {
    pcount++;
    if(pcount==index)
    {
     pcn=pci.currentchainnode.nextchainnode;
     pci.currentchainnode.nextchainnode=vchainnode;
     vchainnode.previouschainnode=pci.currentchainnode;
     vchainnode.nextchainnode=pcn;
     if(pcn!=null)
     {
      pcn.previouschainnode=vchainnode;
     }
     return true;
    }
   }
   return false;
  }

  public bool containskey(string vkey)
  {
   cchain.cchainiterator pci=new cchainiterator(this.firstchainnode,null);
   while(pci.nextchainnode()==true)
   {
    if(pci.currentchainnode.key ==vkey)
    {
     return true;
    }
   }
   return false;
  }

  public cchain.cchainnode item(string vkey)
  {
   cchain.cchainiterator pci=new cchainiterator(this.firstchainnode,null);
   while(pci.nextchainnode()==true)
   {
    if(pci.currentchainnode.key ==vkey)
    {
     return pci.currentchainnode;
    }
   }
   return null;
  }

  public object itemdata(string vkey)
  {
   cchain.cchainiterator pci=new cchainiterator(this.firstchainnode,null);
   while(pci.nextchainnode()==true)
   {
    if(pci.currentchainnode.key ==vkey)
    {
     return pci.currentchainnode.data;
    }
   }
   return null;
  }

  public int chainnodecount()
  {
   int pcount=0;
   cchain.cchainiterator pci=new cchainiterator(this.firstchainnode,null);
   while(pci.nextchainnode()==true)
   {
    pcount++;
   }
   return pcount;
  }
 }
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿尔山市| 金乡县| 德格县| 枣庄市| 德令哈市| 新河县| 沾化县| 阳东县| 阳城县| 凤山县| 平安县| 甘南县| 黄山市| 莱芜市| 库尔勒市| 鲁甸县| 乐至县| 沂南县| 台东市| 琼海市| 迁安市| 浮山县| 雷波县| 大兴区| 濮阳市| 彰化县| 延津县| 玛曲县| 西青区| 闽侯县| 西华县| 安阳县| 嘉荫县| 怀化市| 黔西| 彭泽县| 兴宁市| 克什克腾旗| 宾阳县| 蒲江县| 武隆县|