n名学生成绩在主函数中放入一个带头结点链表中,h指向链表头结点。它功能是:找出学生的最高分,由函数返

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了n名学生成绩在主函数中放入一个带头结点链表中,h指向链表头结点。它功能是:找出学生的最高分,由函数返相关的知识,希望对你有一定的参考价值。

参考技术A #include<iostream>
using
namespace
std;
#define
SIZE
10001
struct
ListNodedouble
score;int
next;List[SIZE];
const
int
H=1;//头节点
int
top=1;//游标...
void
insert(double
score)//插入元素

int
next(H);
while(next!=-1)

if(List[next].next==-1)break;
next=List[next].next;

List[next].next=++top;
List[top].score=score;
List[top].next=-1;

double
getmaxscore()

double
ret=-1;
int
next(List[H].next);
while(next!=-1)

ret=max(List[next].score,ret);
next=List[next].next;

return
ret;

int
main()

List[H].next=-1;//表头...
//样例...
insert(60.88);
insert(77.4432);
insert(99.11);
insert(0.9);
insert(78.5);
insert(74.90);
double
ret=getmaxscore();
if(ret==-1)
cout<<"The
List
is
empty!"<<endl;
else
cout<<ret<<endl;
return
0;

我使用了数组代替了动态的链表,在能估计表大小的情况下,效率上有所提高
这里的查找最大元素的时间复杂度是o(n)的,n表示表长

链表的定义

参考技术A

定义 链表 是一种物理存储单元上 非连续、非顺序 的存储结构,由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

在链表的储存上,每个结点不仅包含所存的元素信息,还包含元素间的 逻辑信息

在每个结点除了包含的数据域外,还包含一个 指针域 ,用以指向其后继结点。

带头结点的单链表中, 头指针head 指向头结点,头结点的值域不含任何信息,从头结点的后继结点开始储存信息。头指针head 始终 不等于NULL head->next 等于NULL的时候,链表为空。

不带头结点的单链表中的 头指针head 直接指向开始结点,当head等于NULL时,链表为空。

双链表就是在单链表结点上增添了一个指针域,指向当前节点的 前驱

相比于单链表,双链表能够从 终端结点 反向走到 开始结点

只需要将单链表 最后一个 指针域( 空指针 )指向链表中的 第一个结点 即可。(如果循环单链表带头结点,则指向头结点;不带头结点,则指向开始结点)。

循环单链表可以实现从 任何一个结点 出发,访问链表中任何结点。(注意:此处应该区分与顺序表随机访问的特点。循环单链表指的是从一个结点出发,而不是知道一个结点从而迅速找到任何一个结点,因此循环单链表 不具有 随机访问特性。)

带头结点 的循环单链表,当 head 等于 head->next 时,链表为空; 不带头结点 的循环单链表,当 head 等于 NULL 时,链表为空。

双链表 终端节点的next指针 指向链表中第一个结点,将链表中的第一个结点的 prior指针 指向终端结点。

不带头结点 的循环双链表, head 等于 NULL ,链表为空

带头结点 的循环双链表是没有空指针的,其为空状态下, head->next head->prior 必然都等于 head ,故一下四种语句都可判断为空

静态链表借助 一维数组 表示。

静态链表结点空间来自于一个 结构体数组 (一般链表结点空间来自整个内存),数组中每个结点含两个分量:

注意:静态链表的指针不是通常所说储存内存地址的指针型变量,而是储存数组下标的整型变量,其功能类似于指针,故在此称为指针

顺序表储存空间时一次性分配的,链表的是多次分配的

(注: 存储密度 = 结点值域所占存储量/结点结构所占存储总量

顺序表存储密度 = 1

链表存储密度 < 1

顺序表可以 随机存取 ,也可以 顺序存取

链表只能 顺序存取

顺序表平均需要移动一半元素

链表不需要移动元素,仅需 修改指针

以上是关于n名学生成绩在主函数中放入一个带头结点链表中,h指向链表头结点。它功能是:找出学生的最高分,由函数返的主要内容,如果未能解决你的问题,请参考以下文章

实验六

建立一个带头结点的单向链表,链表中的各结点按结点数据中的数据递增有序链接,函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序

链表的定义

C语言试题五十二之学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

C语言试题五十二之学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

c语言:写一个函数建立一个有3名学生数据的单向动态链表