SWUST OJ#955 单链表上查找算法的实现
目录
题目
思路
代码
数据结构
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 单链表上查找算法的实现相关推荐
- SWUST OJ 954单链表的链接
swust oj 954 题目描述 建立长度为n的单链表A和长度为m的单链表B.编程实现将B表链接在A表的尾端,形成一个单链表A.数据类型指定为字符型. 输入 输出 样例输入 样例输出 源代码 #in ...
- SWUST OJ 953: 单链表的删除操作的实现
建立长度为n的单链表,删除第i个结点之前的结点. 第一行为自然数n,表示链式线表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定的删除参数i. #include <stdio. ...
- 西南科技大学 swust oj #952: 单链表的插入操作的实现
题目描述 建立长度为n的单链表,在第i个结点之前插入数据元素data. 输入 第一行为自然数n,表示链式线性表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定插入的位置i:第四行为待 ...
- 小白算法积累——单链表21#带头结点单链表+倒数查找
题目:已知一个带有表头结点的单链表,结点结构为data|link,假设该链表只给出了头指针list.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数). ...
- c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言
建立了一个单链表之后,如果要进行一些如插入.删除等操作该怎么办?所以还须掌握一些单链表的基本算法,来实现这些操作.单链表的基本运算包括:查找.插入和删除.下面我们就一一介绍这三种基本运算的算法,并结合 ...
- 在带头结点单链表中查找最大值,将其与最后一个元素交换(交换值)
[问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...
- 【问题描述】在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素。【输入形式】循环输入若干个整数,以字母结束输入,建立带头结点的单链表。【输出形式】输出最
[问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...
- c语言单链表的查找,单链表的查找、建立操作(C语言)
一.单链表的查找(带头结点) (一)按位查找 GetElem(L,i):按位查找操作.获取表L中第i个位置的元素的值. //按位查找,返回第i个元素(带头结点) LNode * GetElem(Lin ...
- 通用固定长度编码格式的字符串查找算法的实现
通用固定长度编码格式的字符串查找算法的实现 字符串的查找是数据库应用中必不可少的操作,而且每种数据库产品(ORACLE.DB2.SYBASE.MS SQL SERVER.MYSQL等等)也都提供了对应 ...
最新文章
- 资源 | Intel发布AI免费系列课程3部曲:机器学习基础、深度学习基础以及TensorFlow基础
- 数据库事务的四个隔离级别浅析
- 【Visual Studio 扩展工具】使用 ComponentOne迷你图控件,进行可视化数据趋势分析...
- epoll与select区别
- 利用计算机进入,1、在第四代计算机期间内,计算机的应用逐步进入到()
- Spring 利用FactoryBean来配置Bean
- 贪心算法之——喷水装置二(nyoj12)
- Maven警告:“java使用了未经检查或不安全的操作。java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。“
- 收集 | 方便实用的在线网站
- 使用SaxParser和完整代码进行XML解析
- class(一)--类的创建
- 使用BFC块级上下文
- 查询、新增、修改、删除方法
- C++提高部分_C++类模板基本语法---C++语言工作笔记087
- Outlook 2013中 IMAP配置
- 【BZOJ1500】[NOI2005]维修数列
- 010,spring boot 文件上传
- 郭霖:手把手教你实现 App 360 度旋转看车效果
- AS3动画效果常用公式
- 只有蓝色www.zcool.com.cn
热门文章
- 如何设置PCB过孔盖油 AD、 Protel 99 SE、 PADS Layout
- STC 51单片机46——看门狗测试
- 2012,做一个现实的理想主义者
- 小学计算机校本课程前言,小学一年级信息技术校本课程开发研究
- 端午节安康--诸佬在我心里越来越粽要了
- 对话:通证(token)是下一代互联网数字经济的关键
- 酷派7269_评测:酷派7269的整体性能简介及性价比如何
- matlab模糊控制 论文,基于matlab的倒立摆模糊控制毕业论文报告.doc
- MPB:扬州大学王梦芝组-​​反刍动物瘤胃原虫与细菌微循环测定方法
- Gson Json 序列号 最常用的功能 MD