数据结构中申请一个节点的问题,初始化怎么就不成功呢????
链式存储结构申请节点并初始化,不能执行,执行的时候说要调试呀??怎么回事.
运行不通过,不知道什么地方错了??????
#include <iostream>
using namespace std;
typedef struct Node
{
int data;
struct Node *next;
}Node,*LinkList;
void InitList(LinkList *L);
void CreatFromHead(LinkList L);
void InitList(LinkList L)
{
L=new Node;
L->next=NULL;
}
void CreatFromHead(LinkList L)
{
Node *s;
char c;
int flag=1;
while(flag)
{
cout<<"qifskfj"<<endl;
cin>>c;
if(c!='^')
{
s=new Node;
s->data=c;
s->next=L->next;
L->next=s;
}
else flag=0;
}
}
void main()
{
LinkList L;
InitList(L);
CreatFromHead(L);
}
[解决办法]
虽然InitList函数声明中是传地址引用,但是后面的函数实现以及函数调用都是传值引用吧?
[解决办法]
没有弄清楚指针,改写代码:
#include <iostream>using namespace std;typedef struct Node{ int data; struct Node *next;}Node,*LinkList;void InitList(LinkList *L);void CreatFromHead(LinkList L);void InitList(LinkList *L){ *L=new Node; (*L)->next=NULL;}void CreatFromHead(LinkList L){ Node *s; char c; int flag=1; while(flag) { cout < <"qifskfj" < <endl; cin>>c; if(c!='^') { s=new Node; s->data=c; s->next=L->next; L->next=s; } else flag=0; }}void main(){ LinkList L; InitList(&L); CreatFromHead(L);}