display(Q);
printf("\n");
DesQueue(Q);
}
用C语言实现删除环形队列第K个元素楼主你好 。
我现在假设环形队列一定可以找到第k个元素,如下:
void DeleteIndexedNode(DList* thiz, int k){//删除第k个元素
DNode* iter=thiz-first;
DNode* pIter;
int index;//假设队列从1开始编号
if(!iter)//队列为空,取消删除
return;
//若想绕一周不再删除,上面可以if(!iter || kthiz-length) return;//若队列为空或超过一周,取消删除
if( k == 1){//若删除首个节点
thiz-first = iter-next;
thiz-last-next = thiz-first;//DList结构若不是双向链表,应该有一个last指针,提高效率
DestroyDNode(iter);//这个是你自己定制的DNode的析构函数
return;
}
//若删除其他节点
do{
pIter = iter;//pIter指向iter前一个节点,用于帮助析构 。
iter = iter-next;
index++;
}while(indexk) ;//因为是环形队列,肯定可以找到第k个元素,而且iter不会为NULL
pIter-next = iter-next;//iter的前一个节点的next绕过iter
DestroyDNode(iter);//这个是你自己定制的DNode的析构函数
return;
}
以上函数可以实现删除第K个元素 , 有什么问题可以再问我 。
c语言队列如何删除任意元素 ??如果是数组形式存储的队列c语言中队列移除函数,将后续元素前移一个单元c语言中队列移除函数 , 并将队列计数减1c语言中队列移除函数;
如果是单向链表形式存储的队列 , 需要得到要删除元素前一个元素的指针,提取要删除元素指针,将前一个元素的后继指针修改成要删除元素的后继指针内容,然后利用前面提取的要删除元素指针将该元素删除 。
【c语言中队列移除函数 c 语言 队列】c语言中队列移除函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c 语言 队列、c语言中队列移除函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 休闲游戏项目创新思路,休闲游戏项目创新思路有哪些
- 怎么在线上办理手机卡套餐,如何线上办手机卡
- asp.net多任务,aspnet task
- 卡丁车小游戏经营,游戏 卡丁车
- sortgo语言,sort1
- 品质的软件代理招商方案,各类软件代理加盟
- oracle表空间管理方式,oracle11g表空间管理方式
- python怎么查阅函数 python中如何查询函数的用法
- 鹤岗亚马逊电商公司如何做,做亚马逊电商挣钱吗