我想用integeres创建一个链表,并在每个两个节点之间创建另一个节点,它是前一个节点和后一个节点之间的平均值。链接列表中的指针错误?
在我添加功能我不明白为什么我的p指针在链表中的,而不是在第一次的最后一个元素。 (这就是我认为它崩溃的原因)。
谢谢。
#include<iostream>
using namespace std;
struct Nod{
int info;
Nod* urm;
};
void create(const int &a, Nod *&p, Nod *&u)
{
if (p == NULL)
{
p = new Nod;
p->info = a;
u = p;
}
else
{
Nod *q;
q = new Nod;
q->info = a;
u->urm = q;
u = q;
}
u->urm = NULL;
}
void print(Nod *p)
{
while (p->urm)
{
cout << p->info<<" -> ";
p = p->urm;
}
cout << p->info;
}
void add(Nod *p)
{
while (p)
{
Nod *q;
q = new Nod;
q->info = (p->info + p->urm->info)/2;
q->urm = p->urm;
p->urm = q;
p = p->urm->urm;
}
}
int main()
{
Nod *p, *u;
p = u = NULL;
char *numar;
numar = new char[100];
cout << "Enter a number: "; cin >> numar;
for (int i = 0; (unsigned)i <= strlen(numar) - 1; i++)
create(numar[i] - '0', p, u);
add(p);
print(p);
system("Pause");
return 0;
}
你正在得到什么错误? – 2014-11-25 05:32:35
崩溃L3_P2.exe中的0x013C5A78处未处理的异常:0xC0000005:访问冲突读取位置0x00000000。 – Stefan 2014-11-25 05:34:34