c++ 数据结构-实现以下对单链表的操作,要求单链表一次遍历效率(数据结构c++)

问题描述

实现以下对单链表的操作,要求单链表一次遍历效率(数据结构c++)
double averageExceptMaxMin(SinglyList &list) ?//去掉最高分和最低分,再求平均值

解决方案

 double averageExceptMaxMin(SinglyList &list){    double d = 0.0;        int n = 0;        double max = 0.0;        double min = 0.0;     Node * node = &list.head;     while (node != NULL)        {            d += node->value;                n++;                if (max < node->value) max = node->value;                if (min > node->value) min = node->value;            node = node->next;        }        return (d - max - min) / (double)(n - 2);}

解决方案二:
其中具体和你链表有关的细节你照着修改下。

时间: 2024-08-02 08:15:18

c++ 数据结构-实现以下对单链表的操作,要求单链表一次遍历效率(数据结构c++)的相关文章

数据结构的C++实现之程序加图示分析单链表的插入和删除操作

下图展示了单链表的基本结构: head指针是链表的头指针,指向第一个节点 ,每个节点的next指针域指向下一个节点,最后一个节点的next指针域为NULL,在图中用0表示. 下面先来看程序( 栈的链式存储实现,另外一个实现点这里)和对应的输出(注意输出前进行了链表反转(见<单链表反转>,否则程序后面 的while循环输出的顺序是250,200,100),接着来分析程序: /* linkedlist.h */#ifndef LINKEDLIST_H#define LINKEDLIST_Htype

java单链表常用操作

总结提高,与君共勉 概述. 数据结构与算法亘古不变的主题,链表也是面试常考的问题,特别是手写代码常常出现,将从以下方面做个小结 [链表个数] [反转链表-循环] [反转链表-递归] [查找链表倒数第K个节点] [查找链表中间节点] [判断链表是否有环] [从尾到头打印单链表-递归] [从尾到头打印单链表-栈] [由小到大合并有序单链表-循环] [由小到大合并有序单链表-递归] 通常在Java中这样定义单链表结构 [java] view plain copy <span style="fon

数据结构实验之链表一:顺序建立链表(构造函数)

数据结构实验之链表一:顺序建立链表 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N: 第二行依次输入每个整数. Output 输出这组整数. Example Input 8 12 56 4 6 55 15 33 62 Example Output 12 56 4 6 55 15 33 62 Code rea

数据结构实验之链表一:顺序建立链表

数据结构实验之链表一:顺序建立链表 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N: 第二行依次输入每个整数. Output 输出这组整数. Example Input 8 12 56 4 6 55 15 33 62 Example Output 12 56 4 6 55 15 33 62 Code rea

C语言单链表常见操作汇总_C 语言

C语言的单链表是常用的数据结构之一,本文总结了单链表的常见操作,实例如下: #include<stdio.h> #include<stdlib.h> //定义单链表结构体 typedef int ElemType; typedef struct Node { ElemType data; struct Node *next; }LNode,*LinkList; //创建单链表 void Build(LinkList L) { int n; LinkList p,q; p=L; pr

用C语言计算一个单链表的长度,单链表的定义如下:要求使用递归,不得出现循环。

问题描述 用C语言计算一个单链表的长度,单链表的定义如下:要求使用递归,不得出现循环. 用C语言计算一个单链表的长度,单链表的定义如下:要求使用递归,不得出现循环. 解决方案 如果链表有环,永远算不出来 只能假定,这个链表不是环形链表,也没有环 简单事情用递归做是低效率的,即便学习递归,也是不必要的 递推, 可以用递归实现 也可以用迭代实现 前者无循环,后者有 解决方案二: int listLength(List *l) { if(l->next!=NULL) { l=l->next; ret

数据结构问题,请问如何用冒泡发实现单向链表的倒排序?C++语言

问题描述 数据结构问题,请问如何用冒泡发实现单向链表的倒排序?C++语言 数据结构问题,请问如何用冒泡发实现单向链表的倒排序?C++语言 解决方案 http://blog.chinaunix.net/uid-20791108-id-483293.html

c语言-编写一程序,将带头结点的单链表拆成一个奇数链表和一个偶数链表

问题描述 编写一程序,将带头结点的单链表拆成一个奇数链表和一个偶数链表 要求用C语言来做!! 解决方案 http://zhidao.baidu.com/link?url=5XqMAQVb1yS0vaNF3QXC9fQPICC-JgqN0lisYvRQHwzYF8jb3ek3ouh_2TG3NKa4eanjSv4illaaV1znE-nkuq 解决方案二: BaiDu:将带头结点的单链表拆成一个奇数链表和一个偶数链表 你会得到很多你想要的. 解决方案三: 这个简单,可以看看面试宝典

【转】数据结构链表操作之双链表的基本操作

//Node.h 声明类Node#ifndef Node_H#define Node_H template <class T>class LinkList;       //为是Node类的友员类而声明 template <class T>class Node{   public:            friend class LinkList<T>;   //将LinkList类设为友元类   private:         T data;      Node&l