我现在用堆实现了一个优先队列,实现了插入和删除操作,但如何实现查找呢?不用全部遍历的方法 20

如题。如何按照堆的结构构造查找函数?要求时间复杂度是O(nlogn)不用挨个遍历的方法... 如题。如何按照堆的结构构造查找函数?要求时间复杂度是O(nlogn)不用挨个遍历的方法 展开
 我来答
匿名用户
2011-04-20
展开全部
->next; 不就成头指针了~
插入:
InserterList_Dul(DuLNode *l,Datatype *p,Datatype e)/*将E元素插入到循环单链表L中的P指针所指的元素前面*/
{
s=(struct DuLNode *)malloc(sizeof(sturct DuLNode));/*申请一个节点,让指针S指向它*/
s->data=e; /*将S送入新节点*/
s->next=p;/*使新节点的后继指针指向P*/
s->prior=p->prior;/*使新节点的前驱指针指向P的前驱指针*/
p->prior->next=s;/*使P的前驱节点的后继指针指向新节点*/
p->prior=s;/*使P的前驱指针指向新节点*/
}
删除:
DeleteList_Dul(DulNOde *l,DuLnode *p) /*删除循环单链表L中P指针所指的元素*/
{
p->prior->next=p->next;/*使P的前驱节点的后继指针指向P的后继节点*/
p->next->prior=p->prior;/*使P的后继节点的前向指针指向P的前驱节点*/
free(p);/*释放P所指被删除的节点*/
}
另外,虚机团上产品团购,超级便宜
追问
谢谢楼上,这个实现不了,我的堆是用数组存储的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式