c++中结构体问题

来源:百度知道 编辑:UC知道 时间:2024/07/13 05:28:31
#include<iostream>
using namespace std;
//==========================
struct lnode
{
double data;
lnode * next;
};

//==============================
void showlist(lnode *);
void addtoend(lnode *m,lnode*);
lnode* getnode();
void deletelist(lnode *);
//===============================
void main()
{
lnode * head=NULL;

for(int i=0;i<5;i++)
{
lnode *temp;
temp=getnode();
cout<<"请输入data=\n";
cin>>temp->data;
addtoend(temp,head);
}

showlist(head);
deletelist(head);
}
//===============================
lnode* getnode()
{
lnode *item;
lnode current={0.0,NULL};
item=¤t;
return item;
}
//===============================
void showlist(lnode * list)
{
if(list)
{
cout<<list->data<<endl;
if(list->next)

结构不是很清楚
1.head:要先考虑head是头节点,还是首节点,你的head是指的第一个节点,还是head的next是第一个节点 这个和插入等都有很大影响
出错是因为head=NULL,但是你后面又调用head->next,当然会出错,getnode()我想你是要返回一个新建的空节点指针(应该是这样的吧)
下面是代码

#include<iostream>
using namespace std;
//==========================
struct lnode
{
double data;
lnode * next;
};

//==============================
void showlist(lnode *);
void addtoend(lnode *m,lnode*);
lnode* getnode();
void deletelist(lnode *);
//===============================
void main()
{
lnode * head=new lnode();
head->next=NULL;

for(int i=0;i<5;i++)
{
lnode *temp;
temp=getnode();
cout<<"请输入data=\n";
cin>>temp->data;
addtoend(temp,head);
}

showlist(head->next);
deletelist(head);
}
//===============================
lnode* getnode()