删除相同值节点
来源:互联网 发布:org.apache jar包下载 编辑:程序博客网 时间:2024/06/05 00:45
双向循环链表结点定义为:
struct node
{ int data;
struct node *front,*next;
};
两个双向循环链表A,B,头指针为:pHeadA,pHeadB,函数将两链表中data值相同的结点删除:
BOOL DeteleNode(Node *pHead, DataType Value)
{
if (pHeader == NULL) return false;
BOOL bRet = FALSE;
Node *pNode = pHead;
while (pNode != NULL)
{
if (pNode->data == Value)
{
if (pNode->front == NULL)
{
pHeader = pNode->next;
pHeader->front = NULL;
}
else
{
if (pNode->next != NULL)
{
pNode->next->front = pNode->front;
}
pNode->front->next = pNode->next;
}
Node *pNextNode = pNode->next;
delete pNode;
pNode = pNextNode;
bRet = TRUE;
}
else
{
pNode = pNode->next;
}
}
return bRet;
}
删除相同值:
void DE(Node *pHeadA, Node *pHeadB)
{
if (pHeadA == NULL || pHeadB == NULL)
{
return;
}
Node *pNode = pHeadA;
while (pNode != NULL)
{
if (DeteleNode(pHeadB, pNode->data))
{
if (pNode->front == NULL)
{
pHeadA = pNode->next;
pHeadA->front = NULL;
}
else
{
pNode->front->next = pNode->next;
if (pNode->next != NULL)
{
pNode->next->front = pNode->front;
}
}
Node *pNextNode = pNode->next;
delete pNode;
pNode = pNextNode;
}
else
{
pNode = pNode->next;
}
}
}
- 删除相同值节点
- 线性表 删除相同节点
- 删除两个双向循环链表中具有相同值的节点
- 单链表删除相同值
- 两个双向链表,删除data成员值相同的节点。
- 删除两个双向循环链表的相同节点
- 删除两个双向循环链表的相同节点
- 删除两个双向链表中相同元素的所有节点
- 删除两个双向循环链表的相同节点
- 删除两个双向循环链表的相同节点
- 删除链表中值相同的多余节点
- 单链表删除相同值(单链表)
- 基于visual Studio2013解决C语言竞赛题之1070删除相同节点
- 数据结构——12 删除两个双向链表中相同的节点
- 关于ul里面li类名都相同时把div父节点删除
- 引用selectNodes 函数 获取xml 字符串中的 相同节点值
- 删除节点
- 节点删除
- 应用系统日志架构
- 重构——代码的坏味道 (1)
- 现实总比相像中好些——西单图书大厦活动侧记
- 重构——代码的坏味道 (2)
- jqgrid总结
- 删除相同值节点
- java中socket的一些错误
- sql语句来增加字符串位数
- Symbian os s60 Hello World实例
- 用php正则表达式去掉字符串的所有空白
- perl 修改文件内容
- 最近很难过
- 正则表达式进行大文件查找时的超时处理
- 链表的C语言实现之单链表的实现