您的位置:首页 > 其它

YTU 2975: 我的编号

2016-01-16 16:02 337 查看



2975: 我的编号

时间限制: 1 Sec  内存限制: 128 MB
提交: 42  解决: 15


题目描述

建立一个学生链表,每个链表结点含有学生的基本信息,编号和姓名。现在n个学生站成一列,根据学生姓名查找学生的编号。

请将代码补充完整,只需提交补充部分。

请用C++方式提交

C++代码:

#include <iostream>

#include <string.h>

using namespace std;

struct student

{

    int number;

    char name[20];

    student *next;

};

student *createlist(int n)

{

    int i;

    student *head=NULL;

    student *p=NULL;

    head=new student;

    head->next=NULL;

    p=head;

    cin>>p->number>>p->name;

    for(i=1;i<n;i++)

    {

        p->next=new student;

        p=p->next;

        p->next=NULL;

        cin>>p->number>>p->name;

    }

    return head;

}

void searchstu(student *head,char *str)

{

    student *current;

    current=head;

    while(current!=NULL)

    {

        if(!strcmp(current->name,str))

        {

            cout<<current->number<<endl;

            break;

        }

        /*

        补充部分,当前结点后移

        */

    }

}

void destroy(student *head)

{

    student *p;

    p=head;

    while(head!=NULL)

    {

        p=head;

        head=head->next;

        delete p;

    }

}

int main()

{

    int n;

    char str[20];

    student *head;

    cin>>n;

    head=createlist(n);

    cin>>str;

    searchstu(head,str);

    destroy(head);

    return 0;

}


输入

第1行输入一个n,表示n个学生;

第2行到第n+1行,每行输入一个学生的编号和姓名,以空格隔开;

最后1行,输入要查找的学生姓名。


输出

要寻找学生的编号


样例输入

5
1001 tom
1002 bob
1003 mike
1006 daming
1007 xiaohong
tom


样例输出

1001



你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>
#include <string.h>
using namespace std;
struct student
{
int number;
char name[20];
student *next;
};
student *createlist(int n)
{
int i;
student *head=NULL;
student *p=NULL;
head=new student;
head->next=NULL;
p=head;
cin>>p->number>>p->name;
for(i=1; i<n; i++)
{
p->next=new student;
p=p->next;
p->next=NULL;
cin>>p->number>>p->name;
}
return head;
}
void searchstu(student *head,char *str)
{
student *current;
current=head;
while(current!=NULL)
{
if(!strcmp(current->name,str))
{
cout<<current->number<<endl;
break;
}
current=current->next;
}
}
void destroy(student *head)
{
student *p;
p=head;
while(head!=NULL)
{
p=head;
head=head->next;
delete p;
}
}
int main()
{
int n;
char str[20];
student *head;
cin>>n;
head=createlist(n);
cin>>str;
searchstu(head,str);
destroy(head);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: