单链表按位置查找及按值查找

2024-01-01 18:28
文章标签 查找 位置 单链 按值

本文主要是介绍单链表按位置查找及按值查找,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <stdio.h>
#include <stdlib.h>
//单链表头插//定义节点类型
typedef struct LNode {int data;//数据域struct LNode *next;//指针域
} LNode, *LinkList;void headList(LinkList &l) {//LinkList等价LNode*(结构体指针)l = (LinkList) malloc(sizeof(LNode));l->next = NULL;int x;scanf("%d", &x);LinkList s;while (x != 9999) {s = (LinkList) malloc(sizeof(LNode));s->data = x;//最后两步顺序不能换s->next = l->next;l->next = s;scanf("%d", &x);}
}void tailList(LinkList &l) {l = (LinkList) malloc(sizeof(LNode));l->next = NULL;int x;scanf("%d", &x);//s指向新节点,r指向链表尾LinkList s, r = l;while (x != 9999) {s = (LinkList) malloc(sizeof(LNode));//s存储了这个节点的起始地址.s指向此节点s->data = x;r->next = s;//新节点给尾节点next指针r = s;//r指向新的尾部scanf("%d", &x);}r->next = NULL;
}void printList(LinkList l) {l = l->next;while (l != NULL) {printf("%3d", l->data);l = l->next;}
}LinkList getByLoxation(LinkList l, int pos) {int i = 1;l = l->next;while (l && i < pos) {l = l->next;i++;}return l;
}LinkList getByValue(LinkList l, int value) {l = l->next;while (l) {if (l->data == value) {return l;} else {l = l->next;}}return l;}int main() {LinkList l;LinkList search;LinkList searchValue;
//    headList(l);
//    printList(l);tailList(l);
//    search = getByLoxation(l, 2);
//    printf("%d", search->data);searchValue = getByValue(l, 3);printf("%d", searchValue->data);
//    printList(l);return 0;
}

这篇关于单链表按位置查找及按值查找的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560127

相关文章

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

Verybot之OpenCV应用二:霍夫变换查找圆

其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序: #include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){cvNamedWindow("vedio",0);CvCapture* capture;i

PDFQFZ高效定制:印章位置、大小随心所欲

前言 在科技编织的快节奏时代,我们不仅追求速度,更追求质量,让每一分努力都转化为生活的甜蜜果实——正是在这样的背景下,一款名为PDFQFZ-PDF的实用软件应运而生,它以其独特的功能和高效的处理能力,在PDF文档处理领域脱颖而出。 它的开发,源自于对现代办公效率提升的迫切需求。在数字化办公日益普及的今天,PDF作为一种跨平台、不易被篡改的文档格式,被广泛应用于合同签署、报告提交、证书打印等各个

Go语言构建单链表

package mainimport "fmt"type ListNode struct {Val intNext *ListNode}func main() {list := []int{2,4,3}head := &ListNode{Val:list[0]}tail := head //需要头尾两个指针for i:=1;i<len(list);i++ {//方法一 数组直接构建链表tai

Win8下如何快速查找和删除电脑中的病毒

Win8系统如何查找和删除病毒?检查你的电脑是否存在病毒的一种快速方法是使用 Windows Defender. 此恶意软件防护随 Windows 提供,可帮助识别和删除病毒、间谍软件和其他恶意软件。   注意:如果你使用的是 Windows RT,则 Windows Defender 会始终启用,并且不能关闭。   如果你使用的是 Windows 8,则可以根据自己的喜好运行由其他

nyoj 685 查找字符串

当初一开始没做出来。 后来,学习过一段时间之后,在返回来做这道题,忽然发现,map类容器可以做。 PS:需要注意的是:此题如果用c++的输入输出的话,会超时。 O(time):gets()<  scanf() < cin。   附上代码: #include<stdio.h>#include<map>#include<string>#include<string.h>usin

[数据结构]线性表之单链表的类模板实现

类的具体实现如下: /#include"LinearList.h"#include <iostream>#include <cstdlib>using namespace std;template<class T>struct LinkNode //链表节点类{T data;LinkNode<T>* link;LinkNode(LinkNode<T>* ptr=NULL):

【C++二分查找】2439. 最小化数组中的最大值

本文涉及的基础知识点 C++二分查找 LeetCode2439. 最小化数组中的最大值 给你一个下标从 0 开始的数组 nums ,它含有 n 个非负整数。 每一步操作中,你需要: 选择一个满足 1 <= i < n 的整数 i ,且 nums[i] > 0 。 将 nums[i] 减 1 。 将 nums[i - 1] 加 1 。 你可以对数组执行 任意 次上述操作,请你返回可以得到的 n

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序