
C++问题:建立职工信息链表,编写函数删除第n个结点的功能。 求程序大神帮忙看看哪里错了~
#include"iostream.h"#defineN3structnode{charnum[6];charname[20];doublewage;node*next;...
#include "iostream.h"
#define N 3
struct node
{
char num[6];
char name[20];
double wage;
node *next;
};
node *deln(node *head,int n)
{
node *p=head->next,*q;
int i=1;
while(i<n&&p->next!=NULL)
{
q=p;
p=p->next;
i++;
}
q->next=p->next;
delete p;
return head;
}
void print(node *head)
{
node *p;
p=head->next;
while(p!=NULL)
{cout<<p->num<<'\t'<<p->name<<'\t'<<p->wage<<endl;
p=p->next;}
}
void main()
{
int n;
node *head=NULL,*tail=NULL,*newnode;
head=new node;
head->next=NULL;
for(int i=0;i<N;i++)
{
cin>>newnode->num>>newnode->name>>newnode->wage;
newnode=new node;
if(head->next==NULL)
head->next=newnode;
else
tail->next=newnode;
tail=newnode;
}
cin>>n;
head=deln(head,n);
print(head);
} 展开
#define N 3
struct node
{
char num[6];
char name[20];
double wage;
node *next;
};
node *deln(node *head,int n)
{
node *p=head->next,*q;
int i=1;
while(i<n&&p->next!=NULL)
{
q=p;
p=p->next;
i++;
}
q->next=p->next;
delete p;
return head;
}
void print(node *head)
{
node *p;
p=head->next;
while(p!=NULL)
{cout<<p->num<<'\t'<<p->name<<'\t'<<p->wage<<endl;
p=p->next;}
}
void main()
{
int n;
node *head=NULL,*tail=NULL,*newnode;
head=new node;
head->next=NULL;
for(int i=0;i<N;i++)
{
cin>>newnode->num>>newnode->name>>newnode->wage;
newnode=new node;
if(head->next==NULL)
head->next=newnode;
else
tail->next=newnode;
tail=newnode;
}
cin>>n;
head=deln(head,n);
print(head);
} 展开
展开全部
建立那个链表时漏了newnode=new node; 应该放在cin前啊
追问
一样的。我就是先在之前。。。后来改成这个也一样。。都不能运行!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询