chaining.cpp

来自「数据结构算法集C++版.好东西大家一起分享。」· C++ 代码 · 共 68 行

CPP
68
字号
#include"LinkList.h"

/*
 * 前置条件:链表已存在
 * 输    入:插入位置i;待插节点x
 * 功    能:在链表的第i个位置处插入一个新节点
 * 输    出:若插入不成功,抛出异常
 * 后置条件:若插入成功,表中增加了一个新节点
 */

 
void LinkList::Insert(Node *p, int k)
{    
    
    while (p->next != 0)
	{
		p=p->next;     //工作指针p后移
   }
   if (!p) 
	   throw "位置";
   else 
   { 
		Node *s;
        s=new Node; 
	    s->data=k;             //向内存申请一个结点s,其数据域为x
        s->next=0;       //将结点s插入到结点p之后
        p->next=s;
	}
}
/*
 *开散列表的建立
 */

void LinkList ::Build(Node *T[], int k, int m)
{
   int j=k%m;
   if (T[j]==0){
        Node *s;
        s=new Node; 
	    s->data=k;             //向内存申请一个结点s,其数据域为x
        s->next=0;
		T[j]=s;
   }
   else{
	   Insert(T[j],k);
   }
}
/*
 *开散列表的查找
 */

Node *HashSearch2(Node *ht[], int m, int k)
{  
	Node *p;
    int j=k%m;
    p=ht[j];
    while ( p->data!=k)
    p=p->next;
    if (p->data==k) 
	   return p;
   else 
   { 
		throw"fail";
   }
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?