您的位置:首页 > 其它

OJ第三批——Problem N: 熟悉题型——填空题(删除线性表节点)

2015-07-01 18:45 435 查看
问题及代码:

Problem N: 熟悉题型——填空题(删除线性表节点)

Time Limit: 1 Sec Memory Limit:
128 MB

Submit: 277 Solved: 165

[Submit][Status][Web
Board]

Description

给出一串具体长度的数据,删除指定数据。

已经给出部分代码,

#include<iostream>

using namespace std;

struct Linklist

{

int num;

Linklist *next;

};

Linklist *creat(int l,int n)

{

Linklist *t=new Linklist;

t->num=l;//每个节点编号

if(n==1)

{

t->next=NULL;

return t;

}

cin>>l;

t->next=creat(l,n-1);

return t;

}

void printf(Linklist *p,int n)

{

if(p==NULL)

return ;

cout<<p->num;

if(n!=1)

cout<<" ";

printf(p->next,n--);

}

Linklist *dellink(Linklist *head,int num)

{

Linklist *p1,*p2;

p1=head;

while(num!=p1->num&&p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

/************

请补充缺少的代码,使该程序完成功能。

***************/

return head;

}

int main()

{

int n,l,m;

cin>>n;

Linklist *head;

cin>>l;

head=creat(l,n);

cin>>m;

head= dellink(head,m);

printf(head,n);

return 0;

}

Input

输入 n:6

输入数据:1 2 3 4 5 6

输入 item:5

Output

输出:1 2 3 4 6

Sample Input

10
1 2 3 4 5 6 7 8 9 10
8

Sample Output

1 2 3 4 5 6 7 9 10

HINT

只提交注释的部分,即填写的部分。

填写的部分可能不止一行,根据自己的判断添加。

填空题添加的代码一般很短。

#include<iostream>
using namespace std;
struct Linklist
{
int num;
Linklist *next;
};
Linklist *creat(int l,int n)
{
Linklist *t=new Linklist;
t->num=l;//每个节点编号
if(n==1)
{
t->next=NULL;
return t;
}
cin>>l;
t->next=creat(l,n-1);
return t;
}
void printf(Linklist *p,int n)
{
if(p==NULL)
return ;
cout<<p->num;
if(n!=1)
cout<<" ";
printf(p->next,n--);
}
Linklist *dellink(Linklist *head,int num)
{
Linklist *p1,*p2;
p1=head;
while(num!=p1->num&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p1->num==num)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
}
return head;
}
int main()
{
int n,l,m;
cin>>n;
Linklist *head;
cin>>l;
head=creat(l,n);
cin>>m;
head= dellink(head,m);
printf(head,n);
return 0;
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: