【链表】8 查找序列元素(链表)

问题描述 :

使用带头结点的单链表编程:

一群学生排成一行,输入一个学号,请确定该学号学生所在的位置。

 

输入说明 :

第一行输入学生信息:

第一个整数n(0<=n<=100),表示共有n个学生,其后有n个整数,表示n个学生的学号

第二行及以后各行,每行输入一个整数,表示要查找的学生学号。

 

输出说明 :

对于每个要查找的学号,输出一个整数,表示要查找学生的位置。如果共有n个学生,则位置序号为1~n。

如果学生不存在,输出“no”,不包括双引号。

每个输出占一行。

 

输入范例 :

12 50 51 52 53 54 49 4 5 10 11 9 12
50
11
12
3

输出范例 :

1
10
12
no


题解:

顺序查找用啥链表啊,反正我就写个向链表但不是纯链表的代码ac了。

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <vector>
using namespace std;
struct ListNode
{
    int num;
    ListNode *next = NULL;
};
int i, j;
int main()
{
    int i, j;
    int n;
    int num;
    cin >> n;
    ListNode note[500];
    for (i = 0; i < n; i++)
    {
        int num;
        cin >> num;
        note[i].num = num;
        note[i].next = &note[i + 1];
    }
    while (cin >> num)
    {
        int ok = 0;
        i = 0;
        ListNode *p;
        int t = 0;
        for (p = &note[0]; (p)->next != NULL; p = (p)->next)
        {
            t++;
            if (p->num == num)
            {
                ok = 1;
                break;
            }
        }
        if (ok == 1)
            cout << t << endl;
        else
            cout << "no" << endl;
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值