查找序列元素(链表)

查找序列元素(链表)

问题描述:
使用带头结点的单链表编程:
一群学生排成一行,输入一个学号,请确定该学号学生所在的位置。

输入说明:
第一行输入学生信息:
第一个整数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

#include <iostream> 
using namespace std;

struct ListNode{
	int  num;
	struct ListNode *next;
};
ListNode *createByTail(){
    ListNode *head;
    ListNode *p1,*p2;
    int n;
    cin>>n;
    head=new ListNode;
    head->next=NULL;
    p2=head;
    int i=0,num;
    while(i<n&&cin>>num){//尾插法
        p1=new ListNode;//创建新节点
        p1->num=num;
        p2->next=p1;
        p2=p1;   
        i++;
    }
    p2->next=NULL;  
    return head;
}

int Locate(ListNode *head,int num){//寻找当前元素位置,没有则返回0
	int count=1;
    ListNode *p;
	p=head->next;
	while(p){
		if (p->num==num){
		       break;
		}
		p=p->next;
		count++;
	}	
	if(p==NULL){
		return 0;
	}else{
		return count;
	}
}

int main() {
	ListNode *head;
	head=createByTail();
	int data;
	while(cin>>data){
		int locate=Locate(head,data);
		if(locate==0){
			cout<<"no"<<endl;
		}else{
			cout<<locate<<endl;
		}	
	}
    return 0;
}

热门文章

暂无图片
编程学习 ·

获取电脑ip地址的代码工具类

获取ip地址的工具类 import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springfram…
暂无图片
编程学习 ·

超星尔雅《中庸》精读

超星学习通app《中庸》精读 答案 孟琢“四书”的形成(一)1【单选题】著作( )是一部论述了人生修养境界的道德哲学专著。 答案:《中庸》A、《周易》B、《史记》C、《诗经》D、《中庸》2【单选题】中国古代思想家( )是儒家学派的创始人,被后世尊称为万世师表。 答案:孔子A、孔…
暂无图片
编程学习 ·

COMP暴涨 风险暗藏

作者|JX kin编辑|文刀6月29日,在以太坊上构建的DeFi借贷协议Compound,因资金规模首超10亿美元引起市场关注,更受关注的是该协议的治理代币COMP近期的暴涨暴跌。从几十美元到400多美元再到如今的200多美元,COMP这趟过山车仅仅开了不到半个月。6月16日,自Compound以“流动性…
暂无图片
编程学习 ·

Android中给Layout添加点击事件

@Android中给Layout添加点击事件 步骤一:在layout控件中设置clickable和focuseable和id <LinearLayout android:id="@+id/to_anchor_dialog" android:onClick=“onClick” android:clickable=“true” android:layout_width=“match_parent” android:layout_hei…
暂无图片
编程学习 ·

Leetcode 题解 - 字符串

字符串循环移位包含 编程之美 3.1 s1 = AABCD, s2 = CDAA Return : true给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环移位得到的字符串包含。 s1 进行循环移位的结果是 s1s1 的子字符串,因此只要判断 s2 是否是 s1s1 的子字符串即可。 字符串循环移位 编程之美…
暂无图片
编程学习 ·

【数据结构与算法】排序算法之冒泡排序(C++、Python)

原理介绍: 假设有长度为n的数组a,按照从小到大的顺序进行排序。冒泡排序的思路为:首先从数组的第一个元素开始,对数组中相邻的两个元素进行比较大小。如果左边(即索引数字小的)元素的值大于右边的元素,则交换这两个元素在数组中的位置,一直到最后一个元素为止。此时数组…
暂无图片
编程学习 ·

移动自动化测试-Appium基础操作API

Appium自动化测试框架 学习目标: 1.能够安装Appium桌面客户端 2.能够安装Appium-python库 Appium介绍: Appium是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用,且是垮平台的,可用于Android和IOS操作系统。 重要的是Appium是跨平台的,可以针对…
暂无图片
编程学习 ·

网络管理

什么是网络管理 网络管理的基础设施 因特网标准管理框架 管理信息结构:SMI 管理信息库:MIB SNMP协议运行和传输映射 安全性和管理 ASN.1
暂无图片
编程学习 ·

【Linux】——I/O复用之poll

1、poll的概述 在上一篇文章中,我们详细的介绍了I/O复用技术中的select使用。这篇文章我们来主要介绍一下poll. poll系统调用和select类似,也是在指定事件内轮询一定数量的文件描述符,以测试其中是否有就绪的 本质都是统一监听,如果任意一个文件描述符上有关注的事件发生。…
暂无图片
编程学习 ·

mysql表碎片回收

1、alter table t engine = innodb;重建整个表,对于支持online ddl的版本,当线上进行操作的时候要调大innodb_online_alter_log_max_size参数,因为该参数会记录ddl过程中的dml操作,而此临时文件存放在临时排序区(innodb_sort_buffer_size),innodb_sort_buffer_size参数上…
暂无图片
编程学习 ·

1.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子, * 假如兔子都不死,问每个月的兔子对数为多少? * 分析: * 月份:1 2 3

package com.ujiuye.java;/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,* 小兔子长到第三个月后每个月又生一对兔子,* 假如兔子都不死,问每个月的兔子对数为多少?* 分析:* 月份:1 2 3 4 5 6 7 8 9...* 对数 :1 1 2 3 5 8 13 21... */ public class Dem…
暂无图片
编程学习 ·

HDFS架构

五.HDFS架构大多数分布式大数据框架都是主从架构HDFS也是主从架构Master|Slave或称为管理节点|工作节点主叫NameNode,中文称“名称节点”从叫DataNode,中文称“数据节点”5.1 NameNode5.1.1 文件系统file system文件系统:操作系统中负责管理文件、存储文件信息的软件具体地说…
暂无图片
编程学习 ·

Python代码

hello world!!! import numpy as npfrom sklearn import linear_modelfrom mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as pltxx, yy = np.meshgrid(np.linspace(0,10,10), np.linspace(0,100,10)) zz = 1.0 * xx + 3.5 * yy + np.random.randint(0,100,…
暂无图片
编程学习 ·

通讯录管理系统一般包括通讯录结点信息的插入、查询、删除、更新以及通信录信息的输出等功能。而通讯录的信息一般包括编号、姓名、性别、电话以及地址等项。本题主要考查用链式结构来实现通讯录管理系统(链表)

通讯录管理 题目要求: 通讯录管理系统一般包括通讯录结点信息的插入、查询、删除、更新以及通信录信息的输出等功能。而通讯录的信息一般包括编号、姓名、性别、电话以及地址等项。本题主要考查用链式结构来实现通讯录管理系统(链表的操作)。 需求分析: 将通讯录设置为6个模…
暂无图片
编程学习 ·

CSV文件转Excel后数字自动转换成科学计数法的解决方法

CSV文件用Excel打开后,长度超过11位的数字自动转换成科学计数法显示,末尾数字变成“0000”,如何解决这一问题?以“老劳模系统数据.CSV”为例,身份证码是科学计数法了第一步:新建excel,用 office excel 打开第二步:点击“数据”---“从文本/cvs”如果乱码,则选择编码第…
暂无图片
编程学习 ·

java之IO流总结

数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。 Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。 根据数据的流向…
暂无图片
编程学习 ·

想进大厂?字节跳动等独角兽公司都在重金招聘Python工程师!(Python就是第一语言!)

在本文章中,作者通过自身经历,力求客观的谈谈个人选择学习Python的动机,以及独角兽公司对Python工程师的要求及薪资。 从目前各种迹象(企业招聘,语言排名等)看来Python相对Java应该是暂时领先,这得力于Python的厚积薄发。 01选择Python不只是选择一门语言 你能收获并不仅…
暂无图片
编程学习 ·

QT布局与信息和槽

实训第一天知识记录QT编码出现问题解决写代码出问题怎么办计算器编码的问题以及记录三种写法Hello World及注意事项布局的代码实现下一篇 信号,槽,以及connect()方法 QT编码出现问题解决 方法一: 找到工具栏——选项——kits 方法二: 项目中的构建目录 方法三: 右击清楚…
暂无图片
编程学习 ·

Design-适配器模式

适配器模式介绍实现代码实现 介绍 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对…
暂无图片
编程学习 ·

是个前端都应该了解的web安全知识(附一些较新的防范方法)

前言对于很多刚开始工作的前端而言,web安全似乎是一个说不清道不明的东西。关于web安全,认真学习总结一下,其实就会发现它不难。本文通过面试提问的形式来一一进行总结,希望对于各位小伙伴理解web安全有所帮助。1.前端有哪些攻击方式?目前常见的web攻击方式主要分为:XSS攻…