c++中关于双向链表的问题

雨于鱼 雨于鱼 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#ifndef _DoubleList_h_
#define _DoubleList_h_

#include <stdio.h>
#include <stdlib.h>
typedef struct DNode//节点的定义
{
int x;
struct DNode *prior,*next;
}DNode;

typedef struct Header//头节点的定义
{
int length;
DNode *next;
}Header;

Header Init_List()//初始化一个双向链表
{
Header header;
header.length = 0;
header.next = NULL;
return header;
}
Header ListInsert(Header &header,int i,DNode &e)//在位置i插入指定元素e
{
if(i>header.length)
{
printf("please input suit num");
}
DNode *current=(DNode*)&header;
int j = 0;
if (header.next == NULL)
{
header.next=&e;
e.next =NULL;
e.prior=NULL;
header.length ++;
return header;
}
else if (i == header.length)
{
e.next = NULL;
e.prior = current;
current->next = &e;
header.length ++;
return header;
}
else
{
for (j=0;j<i;i++)
{
current=current->next;
}
e= *(current->next->prior);
e.next = current->next ;
*(current->next)= e;
e.prior = current;
header.length++;
return header;
}
}
#endif

int main()
{
DNode n1,n2,n3,n4;
n1.x = 1;
n2.x = 2;
n3.x = 3;
Header N;
N=Init_List();

N=ListInsert(N,0,n1);
printf("%d\n",N.next->x);

N=ListInsert(N,1,n2);
printf("%d",N.next->next->x);

N=ListInsert(N,1,n3);
printf("%d",N.next->next->next->next );
}
在打印第二个数时出现Program received signal SIGSEGV, Segmentation fault求教

...全文

相关推荐

cpp代码-双向循环链表-oj

标题 "cpp代码-双向循环链表-oj" 暗示了这是一个关于使用C++编程语言实现双向循环链表的项目,目标可能是为了解决在线编程挑战(Online Judge,简称oj)中的问题。

weixin_38499349

cpp代码-链表之报数问题-oj

本项目“cpp代码-链表之报数问题-oj”显然聚焦于使用C++解决一个与链表相关的在线编程挑战(oj,即Online Judge系统)。

weixin_38638688

约瑟夫环_双向链表(c++做的)

在约瑟夫环问题中,双向链表可以更好地模拟人们在圆圈中的顺序关系。下面我们将深入探讨如何使用C++实现约瑟夫环问题的双向链表解决方案:1.

奋斗者111

VC++课程设计双向链表电话簿

通过阅读和理解这个源代码,学生不仅可以学习到C++编程的基本语法,还可以深入理解数据结构和算法,特别是双向链表的实现及其应用。这对于提高编程能力和解决实际问题的能力非常有帮助。

shgthed

C++实现大数阶乘:双向链表的运用

双向链表是一种常见的数据结构,它允许数据在两个方向上进行扩展。每个节点由三个部分组成:数据域和两个指针域,分别指向前一个节点和后一个节点。与单向链表相比,双向链表提供了更灵活的操作,尤其是在数据需要频繁地向前或向后遍历时。双向链表的节点定义如下:在大数计算中,由于数字的位数可能非常多,双向链表可以有效地存储每一位数字,并且可以通过前后指针快速访问和修改相邻数字。溢出发生在程序试图存储比变量类型能容纳的更大数值时。在大数运算中,由于数值的大小远远超过了传统的数据类型(如int或long。

CodeMystic
评论 9
收藏 已收藏
分享
返回顶部
雨于鱼
C++ 语言 65,214 成员 250,514 内容