精华内容
下载资源
问答
  • 查找链表中最大值

    千次阅读 2020-02-17 19:12:48
    描述 利用单链表表示一个整数序列,通过一趟遍历在单链表确定值最大的结点。...对于每组数据分别输出一行,输出每个链表最大值。 输入样例 1 5 2 1 3 5 4 6 2 3 10 4 5 1 4 -1 -2 -3 -4 0 输出样例 1 5...

    描述

     

    利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。

    输入

    多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。

    输出

    对于每组数据分别输出一行,输出每个链表的最大值。

    输入样例 1 

    5
    2 1 3 5 4
    6
    2 3 10 4 5 1
    4
    -1 -2 -3 -4
    0

    输出样例 1

    5
    10
    -1
    #include <iostream>
    using namespace std;
    
    typedef struct LNode{
    	int data;
    	struct LNode *next;
    }LNode,*LinkList;
    
    void InitList(LinkList &L)
    {
    	L=new LNode;
    	L->next=NULL;
    	return; 
    }
    
    void CreateList_R(LinkList &L,int n)
    {
    	int i; 
    	LinkList r=L;
    	LinkList p; 
    	
    	for(i=0;i<n;i++)
    	{
    		p=new LNode;
    		int data;
    		cin>>data;
    		p->data=data;
    		p->next=NULL;
    		r->next=p;
    		r=p; 
    	}
    	return;
    }
    
    void Show(LinkList &L)
    {
    	LinkList p=L->next;
    	while(p){
    		cout<<p->data;
    		if(p->next) cout<<" ";
    		p=p->next;
    	}
    	cout<<endl;
    	return;
    }
    
    int Max(LinkList &L) 
    {
    	LinkList max=new LNode,p;
    	
    	p=L->next;
    	max->data=p->data;
    	p=p->next;
    	while(p)
    	{
    		if(p->data > max->data)
    			max->data=p->data;
    		p=p->next;
    	}
    	return max->data;
    }
    
    int main()
    {
    	int n;
    	cin>>n;
    	while(n!=0)
    	{
    		LinkList A;
    		InitList(A);
    		CreateList_R(A,n);
    		cout<<Max(A)<<endl;
    		cin>>n;//key
    	}
    	return 0;
    }

     

    展开全文
  • 230查找链表中最大值 描述 利用单链表表示一个整数序列,通过一趟遍历在单链表确定值最大的结点。 输入 多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n...

    欢迎登录北京林业大学OJ系统
    http://www.bjfuacm.com

    230查找链表中的最大值

    描述
    利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。
    输入
    多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。
    输出
    对于每组数据分别输出一行,输出每个链表的最大值。
    输入样例 1
    5
    2 1 3 5 4
    6
    2 3 10 4 5 1
    4
    -1 -2 -3 -4
    0
    输出样例 1
    5
    10
    -1

    #include<iostream>
    using namespace std;          
    typedef struct LNode
    {
        int data;
        struct LNode *next;
    }LNode,*LinkList;
    void InitList(LinkList &L)            
    {
        L=new LNode;            
        L->next=NULL;
    }
    int Max(LinkList L)
    {
        int max=L->next->data;		//max为首元结点的数据
        LinkList p=L->next->next;		//指针p指向L的首元结点的下一个    
        while(p)                		//当p结点存在时,max与之比较    
        {
            if(max<p->data)    
                max=p->data;
            p=p->next;
        }    
        return max;
    }
    void Input(LinkList &L)           	//注意引用&符号:形参变化,改变实参
    {
        int n;                        	//n个数据
        while(cin>>n&&n!=0)            	//实现多组数据
        {    
       		LinkList L=new LNode;
        	LinkList p=L;		//尾插法:p是链表的尾指针
            while(n--)                	//循环输入n个数据
            {
                LinkList q=new LNode;       //定义新指针q并分配地址
                cin>>q->data;            	//输入数据
                q->next=NULL;            	//处理新结点的指针域
                p->next=q;            	//将新结点插在尾结点后面
                p=q;            		//更新指针p,指向尾结点
            }
            cout<<Max(L)<<endl;         	//输出链表结点的最大值
        }        
    }            
    int main()
    {
        LinkList L;           		//定义:LinkList类型的指针L
        InitList(L);         		//创建:给指针L分配地址,初始化
        Input(L);            		//输入数据    
        return 0;                
    }
    
    展开全文
  • 描述 利用单链表表示一个整数序列,通过一趟遍历在单链表确定...对于每组数据分别输出一行,输出每个链表最大值。 输入样例 1 5 2 1 3 5 4 6 2 3 10 4 5 1 4 -1 -2 -3 -4 0 输出样例 1 5 10 -1 这个题比较简单,...

    描述

    利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。

    输入

    多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。

    输出

    对于每组数据分别输出一行,输出每个链表的最大值。

    输入样例 1

    5
    2 1 3 5 4
    6
    2 3 10 4 5 1
    4
    -1 -2 -3 -4
    0

    输出样例 1

    5
    10
    -1

    这个题比较简单,就是一趟遍历找最大值。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    typedef struct link {
    	int data;
    	struct link* next;
    }link,*linklist;
    
    void Create(linklist& L,int n)
    {
    	linklist p,r;
    	L = new link;
    	L->next = NULL;
    	r = L;
    	while (n--)
    	{
    		p = new link;
    		cin >> p->data;
    		p->next = r->next;
    		r->next = p;
    		r = p;
    	}
    }
    
    int Find(linklist L)
    {
    	int max;
    	linklist p;
    	p = L->next;
    	max = p->data;
    	while (p)
    	{
    		if (p->data > max)
    			max = p->data;
    		p = p->next;
    	}
    	return max;
    }
    
    int main()
    {
    	linklist L;
    	int n;
    	while (1)
    	{
    		cin >> n;
    		if (n == 0)
    			break;
             
    	     Create(L, n);
    	     int m;
    	     m = Find(L);
    	     cout << m;
    		 cout << endl;
    	}
    }
    
    展开全文
  • 链表中最大值

    千次阅读 2017-12-29 21:24:37
    typedef struct { int data; Node *next; Node *prev; }Node; int find_max(Node *phead) { assert(phead != NULL); Node *p = phead->next; int max = p->data; while(p->next !... {
    typedef struct 
    {
    	int data;
    	Node *next;
    	Node *prev;
    }Node;
    
    
    
    
    int find_max(Node *phead)
    {
    	assert(phead != NULL);
    	Node *p = phead->next;
    	int max = p->data;
    
    
    	while(p->next != phead->next)
    	{
    		Node *s = p->next;
    		if(max < s->data)
    		{
    			max = s->data;
    		}
    		p = p->next;
    	}
    }

    展开全文
  • 编写函数MoveMaxToTail(),实现查找单链表中值最大的结点,并将其移动到链表尾部,注意其他结点的相对次序不变。要求尽量具有较高的时间效率。 例如输入8 12 46 30 5,输出为8 12 30 5 46 1.定义结构体和宏定义类型...
  • 设计一个算法,通过一趟遍历,找出链表中最大元素。 */ #include typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; int InitList(LinkList &L){ L=new LNode; L->next=NULL; ...
  • /********************************************************* **************新增加功能:输出链表...*********************************************************/ /****求链表中值最大的节点****/ void SListNo
  • 符号表符号表是一种存储键值对的数据结构,支持两种操作:插入(put)和查找(get)。 可以分为无序符号表和有序符号表...无序链表中的顺序查找非常的低效 向一个空表插入N个不同的键需要N^2/2次比较。 只适用于小型
  • #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #define N 10 typedef struct node{ ...//创建一个单向链表 ElemSN* CreatLink(int a[],int n) { ElemSN *head,*tail,*p; he...
  • 在单链表删除一个节点先要找到它的前驱节点,用指针p扫描整个单链表,pre指向节点p的前驱节点,在扫描时用maxp指向data域值最大的节点,maxpre指向maxp所指节点的前驱节点,当链表扫描完毕后,通过maxpre所指节点...
  • (1)求链表中最大整数: (2)求链表的结点个数。 (3)求链表中所有元素的平均。 运行截图: #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define OK 1 #define ERROR -1 #d...
  • (1)求链表中最大整数。 (2)求链表的结点个数。 (3)求链表中所有元素的平均。 源代码: #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define OK 1 #define ERROR 0 typedef i....
  • 单链表查找最大值并删除 任务描述: 试编写在带头结点的单链表删除一个最大值结点的高效算法。 代码实现: // 在带头节点的单链表删除一个最大值结点 #include <stdio.h> #include <stdlib.h> ...
  • Skip List是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定困难的问题,查找特定的时间复杂度为O(logn),他是一种可以代替平衡树的数据结构。    下面是skipList的一个介绍,转载来的,源...
  • - 新增功能:采用回调函数在链表中查找,并且返回值指针- ----------------------------------------------- -----------------------------------------------/**链表中寻找一个特定,返回该节点指针
  • ①输出单向链表尾结点的... ④输出单向链表,结点值最大。 ⑤ 逆向输出单向链表数据域的。 //①输出单向链表尾结点的。(非空链表) int TialNode(ElemSN *head) { for(ElemSN *p=head;p->next;p=p->next
  • 链表

    千次阅读 2017-04-29 23:22:15
    链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个...
  • 单向链表-查找和删除

    2017-08-21 23:47:17
    1)查找 例:在一个非空单向链表(数据域不重复)查找值为key的结点,并返回结点地址,若未找到返回NULL。
  • 单向链表的遍历、查找

    千次阅读 2018-02-17 21:23:48
    单向链表的创建在这里不在赘述,详细请看另一篇文章《单向链表的创建》。在本篇文章,主要通过举例的方式来帮大家理解单向链表的基本遍历。... 例一:输出单向链表尾节点的void PrintTail(El...
  • 本题要求将键盘输入的学生信息创建成单向链表,并在学生信息链表中查找学生信息。 学生信息链表结点定义如下: typedef struct List{  int sno;  char sname[10];  List *next; }; 需要创建的函数包括: 创建...
  • 已知线性链表由list指出,链节点的构造为(data,next),请写一个算法,将链表中数据域最小的那个节点移动到链表的最前面。(不能申请额外的节点)(更好的阅读体验,请访问程序员在旅途) 二、分析解答  &...
  • 跳跃链表

    千次阅读 2020-01-14 18:17:14
    跳跃链表是有序链表的一个变种,在一个有序链表中查找一个链表中的元素需要进行一次遍历,时间复杂度为O(n),为了加快查找的过程,能够跳过某些元素呢?一个思路就是牺牲一定的空间换时间,对有序链表建立类似索引...
  • 二分查找法正确写法和判断链表循环
  • C++ Vector容器查找最大值,最小值以及相应的索引位置 #include <iostream> #include <vector> #include <windows.h> #include <algorithm> using namespace std; int main() { vector&...
  • 假定第一个结点数据具有最大值,依次与下一个元素比较,若其小于下一个元素,则设其下一个元素为最大值,反复进行比较,直到遍历完该链表。 int GetMax(LinkList L) { if (L->next == NULL) return NULL; ...
  • 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向 比如二叉搜索树: 输出应为: 3, 4, 5, 10, 11, 12, 13: 分析: 处理树状结构很容易想到...
  • 链表基础知识总结

    万次阅读 多人点赞 2018-05-02 19:47:49
    链表和数组作为算法的两个基本数据结构,在程序设计过程经常用到。尽管两种结构都可以用来存储一系列的数据,但又各有各的特点。数组的优势,在于可以方便的遍历查找需要的数据。在查询数组指定位置(如查询数组...
  • 如果用链表存的话 那么访问每一个元素是O(n)的这样效率很低 数组可以实现O(1)的访问 下面看一下实现: public class Bin { public int binarySearch(int []a,int low,int high,int value){ int middle = (low+...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,943
精华内容 39,977
关键字:

查找链表中的最大值