接下来,实现插入函数
void SortedMap<K,E>::insert(const pair<const K,E>& thePair)
{
//找到你插入的位置
pairNode<K,E>* p =firstNode ,*tp=NULL;
//不能存在重复的key,如果出现重复的key后面的会覆盖掉前面的
while(p!=NULL&& p->element.first<thePair.first){
tp=p;
p=p->next;
}
//判断是否存在
if(p!=NULL&&p->element.first==thePair.first)
{
//存在相同的键值,让后面的覆盖前面的
p->element.second=thePair.second;
return ;
}
//不存在----创建新的一个结点插进去 (tp是插入位置上一个,p和tp相邻,即在p和tp之间插入)
//newNode=thePair ,next=p;
pairNode<K,E>* newNode=new pairNode<K,E>(thePair,p);
if(tp==NULL)
{
//意味着是第一个结点
firstNode=newNode;
}
else
{
tp->next=newNode;
}
dSize++;
}
好了,插入功能就实现,就是这么简单,不用着急,其他功能和源码明天附上。