关于c双向链表的插入问题
来源:互联网 发布:php爬虫程序 编辑:程序博客网 时间:2024/06/07 16:54
bool _inser(int index, const char* name)
{
NODE* p = (NODE*)malloc(sizeof(NODE));
memset(p,0,sizeof(NODE));
p->index = index;
strcpy_s(p->name, name);
if (head == NULL)
{
head = p;
return true;
}
if (head->index > index)
{
p->next = head;
head->prev = p;
head = p;
return true;
}
NODE* buffer = head;
for (;buffer!=NULL;buffer=buffer->next)
{
if (buffer->next == NULL)
{
buffer->next = p;
p->prev = buffer;
return true;
}
if (buffer->next->index > p->index)
{
/*p->next = buffer->next;
p->prev = buffer;
buffer->next->prev = p;
p->prev = buffer;*/
p->next = buffer->next;
buffer->next->prev = p;
buffer->next = p;
p->prev = buffer;
return true;
}
}
return false;
{
NODE* p = (NODE*)malloc(sizeof(NODE));
memset(p,0,sizeof(NODE));
p->index = index;
strcpy_s(p->name, name);
if (head == NULL)
{
head = p;
return true;
}
if (head->index > index)
{
p->next = head;
head->prev = p;
head = p;
return true;
}
NODE* buffer = head;
for (;buffer!=NULL;buffer=buffer->next)
{
if (buffer->next == NULL)
{
buffer->next = p;
p->prev = buffer;
return true;
}
if (buffer->next->index > p->index)
{
/*p->next = buffer->next;
p->prev = buffer;
buffer->next->prev = p;
p->prev = buffer;*/
p->next = buffer->next;
buffer->next->prev = p;
buffer->next = p;
p->prev = buffer;
return true;
}
}
return false;
}
为什么会发生部分数据的丢失?如1 9 4 8 10
阅读全文
0 0
- 关于c双向链表的插入问题
- 关于双向链表插入节点的问题
- 【C】单向链表和双向链表的插入
- 有序双向链表的插入 C语言实现
- C语言---双向链表的插入、删除、查找操作
- C语言---双向链表的插入、删除、查找操作
- 关于双向链表之插入+删除
- C语言实现双向链表删除、插入、双向输出
- 双向循环链表的插入
- 双向链表元素的插入
- 双向链表结点的插入
- 双向循环链表的插入删除
- 双向链表的建立插入删除
- 精简双向链表的插入代码
- 双向链表的创建/插入/删除
- 双向链表的插入算法
- 双向链表的插入与删除
- 双向链表的插入删除操
- 4.使用maven创建web项目
- 这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)
- CSS实现父级元素属性display为block的元素垂直和水平居中的三种方法
- python︱flashtext高效字符串查找与替换
- Eclipse插件 Properties Editor
- 关于c双向链表的插入问题
- 用户自定义session类
- 加快C++代码的编译速度方法
- class中各个部分执行顺序
- java两个数组相对比,得到没有匹配相等的值。
- php安装扩展gd报错解决
- spring—bean的作用域
- 1013. Battle Over Cities (25)
- IMAS历年真题下载(小学中高年级组2012-2016年 上海卷)