目录

题目

思路

代码

数据结构

STL


题目

题目描述

建立一个长度为n的带头结点的单链表,在该表中寻找第i个结点,若找到,则输出ok,否则输出error。处理数据类型为整型。

输入

第一行为链表的长度n; 第二行为链表中的数据元素; 第三行为要找的结点i。

输出

找到就输出ok,没找到就输出error。

样例输入

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

样例输出

ok

思路

从头遍历查找即可,没找到就输出error并退出程序,找到了就输出ok

void LinklistFind(Linklist* &L) {int key;cin>>key;//输入要查找的节点L=L->next;//跳过头节点//循环判断,当出现L为NULL时候,说明没找到,//输出error并退出程序while(--key) {L=L->next;if(L==NULL) {cout<<"error";exit(0);}}cout<<"ok";
}

代码

链表模板

数据结构

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
//定义链表
typedef struct LNode {int data;LNode* next;
}Linklist;
// 初始化链表
void LinklistInit(Linklist* &L) {L=(Linklist*)malloc(sizeof(Linklist));L->next=NULL;
}
//输入数据,创建链表
void LinklistCreate(Linklist* &L) {int n;cin>>n;Linklist *p=L;while(n--) {Linklist* q;LinklistInit(q);cin>>q->data;p->next=q;p=q;}
}
// 单链表查找
void LinklistFind(Linklist* &L) {int key;cin>>key;L=L->next;while(--key) {L=L->next;if(L==NULL) {cout<<"error";exit(0);}}cout<<"ok";
}
//输出数据,打印链表
void LinklistPrint(Linklist* &L) {L=L->next;while(L!=NULL) {cout<<L->data<<" ";L=L->next;}
}
int main() {Linklist *L;LinklistInit(L);LinklistCreate(L);LinklistFind(L);return 0;
}

STL

#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
list<int>a,b;
int main(){int n,x,find;cin>>n;while(cin>>x,a.push_back(x),--n);cin>>find;if(find>a.size()||find<1) cout<<"error";else cout<<"ok";return 0;
}

SWUST OJ#955 单链表上查找算法的实现相关推荐

  1. SWUST OJ 954单链表的链接

    swust oj 954 题目描述 建立长度为n的单链表A和长度为m的单链表B.编程实现将B表链接在A表的尾端,形成一个单链表A.数据类型指定为字符型. 输入 输出 样例输入 样例输出 源代码 #in ...

  2. SWUST OJ 953: 单链表的删除操作的实现

    建立长度为n的单链表,删除第i个结点之前的结点. 第一行为自然数n,表示链式线表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定的删除参数i. #include <stdio. ...

  3. 西南科技大学 swust oj #952: 单链表的插入操作的实现

    题目描述 建立长度为n的单链表,在第i个结点之前插入数据元素data. 输入 第一行为自然数n,表示链式线性表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定插入的位置i:第四行为待 ...

  4. 小白算法积累——单链表21#带头结点单链表+倒数查找

    题目:已知一个带有表头结点的单链表,结点结构为data|link,假设该链表只给出了头指针list.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数). ...

  5. c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言

    建立了一个单链表之后,如果要进行一些如插入.删除等操作该怎么办?所以还须掌握一些单链表的基本算法,来实现这些操作.单链表的基本运算包括:查找.插入和删除.下面我们就一一介绍这三种基本运算的算法,并结合 ...

  6. 在带头结点单链表中查找最大值,将其与最后一个元素交换(交换值)

    [问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...

  7. 【问题描述】在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素。【输入形式】循环输入若干个整数,以字母结束输入,建立带头结点的单链表。【输出形式】输出最

    [问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...

  8. c语言单链表的查找,单链表的查找、建立操作(C语言)

    一.单链表的查找(带头结点) (一)按位查找 GetElem(L,i):按位查找操作.获取表L中第i个位置的元素的值. //按位查找,返回第i个元素(带头结点) LNode * GetElem(Lin ...

  9. 通用固定长度编码格式的字符串查找算法的实现

    通用固定长度编码格式的字符串查找算法的实现 字符串的查找是数据库应用中必不可少的操作,而且每种数据库产品(ORACLE.DB2.SYBASE.MS SQL SERVER.MYSQL等等)也都提供了对应 ...

最新文章

  1. 资源 | Intel发布AI免费系列课程3部曲:机器学习基础、深度学习基础以及TensorFlow基础
  2. 数据库事务的四个隔离级别浅析
  3. 【Visual Studio 扩展工具】使用 ComponentOne迷你图控件,进行可视化数据趋势分析...
  4. epoll与select区别
  5. 利用计算机进入,1、在第四代计算机期间内,计算机的应用逐步进入到()
  6. Spring 利用FactoryBean来配置Bean
  7. 贪心算法之——喷水装置二(nyoj12)
  8. Maven警告:“java使用了未经检查或不安全的操作。java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。“
  9. 收集 | 方便实用的在线网站
  10. 使用SaxParser和完整代码进行XML解析
  11. class(一)--类的创建
  12. 使用BFC块级上下文
  13. 查询、新增、修改、删除方法
  14. C++提高部分_C++类模板基本语法---C++语言工作笔记087
  15. Outlook 2013中 IMAP配置
  16. 【BZOJ1500】[NOI2005]维修数列
  17. 010,spring boot 文件上传
  18. 郭霖:手把手教你实现 App 360 度旋转看车效果
  19. AS3动画效果常用公式
  20. 只有蓝色www.zcool.com.cn

热门文章

  1. 如何设置PCB过孔盖油 AD、 Protel 99 SE、 PADS Layout
  2. STC 51单片机46——看门狗测试
  3. 2012,做一个现实的理想主义者
  4. 小学计算机校本课程前言,小学一年级信息技术校本课程开发研究
  5. 端午节安康--诸佬在我心里越来越粽要了
  6. 对话:通证(token)是下一代互联网数字经济的关键
  7. 酷派7269_评测:酷派7269的整体性能简介及性价比如何
  8. matlab模糊控制 论文,基于matlab的倒立摆模糊控制毕业论文报告.doc
  9. MPB:扬州大学王梦芝组-​​反刍动物瘤胃原虫与细菌微循环测定方法
  10. Gson Json 序列号 最常用的功能 MD