设计一个算法,删除一个单链表L中元素值最大的结点(假设最大值结点是唯一的)。

#include <stdio.h>
#include<malloc.h>
typedef struct Node
{int data;struct Node *next;
}LinkList;
void InitList(LinkList*& L)
{L = (LinkList*)malloc(sizeof(LinkList));L->next = NULL;
}
void CreateListTail(LinkList *&L, int n)
{LinkList *p, *r;int i,t;L = (LinkList*)malloc(sizeof(Node));r = L;for (i = 0; i < n; i++){p = (LinkList*)malloc(sizeof(Node));scanf_s("%d", &t);p->data = t;r->next = p;r = r->next;}r->next = NULL;
}
void ListDelete(LinkList *&L)
{LinkList *p,*q,*maxp,*maxq;p = L->next; //p=头结点的后一个结点q = L; //Node q=头结点maxp = p;maxq = q;while (p!=NULL){if (maxp->data < p->data){maxp = p;maxq = q;}q = p;p = p->next;}maxq->next = maxp->next;free(maxp);
}
void Print(LinkList *L)
{LinkList* p = L->next;while (p != NULL){printf("%d ", p->data);p = p->next;}printf("\n");
}
int main()
{int n;LinkList *L;scanf_s("%d", &n);InitList(L);CreateListTail(L, n);ListDelete(L);Print(L);return 0;
}

设计一个算法,删除一个单链表L中元素值最大的结点(假设最大值结点是唯一的)相关推荐

  1. 王道数据结构2.2.4——1、设计递归算法删除不带头结点的单链表L中所有值为x的结点

    思路 递归包含三个部分:出口.调用本身.删除操作. 代码 void del_x(LinkList &L,ElemType x){LNode *p;if(L==NULL){return;}if( ...

  2. 单链表-删除单链表L中奇数号节点(双指针法)

    题意: 有一个带头节点的单链表L,设计一个算法,删除其中第1,3,5,7号-节点,即删除奇数号的节点. 单链表的存储结构: typedef struct LinkList{int data;LinkL ...

  3. 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表L中,使L仍然有序。

    创建链表,main函数中通过while循环找出该插入的位置,插入.应注意L头节点位置的变化,利用一个ptr来记录L的头节点. /*已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值 ...

  4. 单链表-在带头结点的单链表L中删除一个最小值结点(四指针)

    单链表的存储结构: typedef struct LinkList{int data;LinkList * next;} 分析: 要删除一个链表的最小值节点,首先想到的是肯定是要定义两个指针,但是 , ...

  5. 单链表-删除单链表L中第一个值为x的结点(双指针法)

    单链表的存储结构: typedef struct LinkList{int data;LinkList * next;} 分析: 如果我们用一个指针p ,指向要删除的结点, 要删除第一个还好,可以删, ...

  6. 单链表-删除单链表L中第一个值为x的结点的前驱结点(三指针法)

    单链表的存储结构: typedef struct LinkList{int data;LinkList * next;} 分析: 首先,我们要删除第一个值为x结点的前驱结点,则该链表要包含两个及以上结 ...

  7. 判断单链表L是否递增

    设计一个算法,判断单链表L是否是递增的.实现这个算法,并完成测试. head.h #ifndef HEAD_H_INCLUDED #define HEAD_H_INCLUDED #include &l ...

  8. c语言单链表递增排序,单链表 基本操作(元素递增排序)

    题目描述: 有一个带头节点的单链表L(至少有一个数据节点),设计一个算法使其元素递增有序排列. 解题思路: 由于单链表L中有一个以上的数据节点,首先构造一个只含有头结点和首节点的有序单链表(只含有一个 ...

  9. 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母

    假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...

最新文章

  1. (C++)从本机获取WMI数据.
  2. 消控中心人员配置_建筑能耗监测系统集中化运行管理模式和人员配置!
  3. vim 同一行内单字符搜索跳转(笔记)
  4. java程序设计_80后程序员,带你深入理解Java基本的程序设计结构,不来你别后悔...
  5. Java Bootstrap:Dropwizard与Spring Boot
  6. shopxo二次开发:底部导航VS顶部导航 (统一性问题)
  7. Python入门--字符串的分割操作,split,rsplit
  8. PLSQL提示动态执行表不可访问,本会话的自动统计被禁止问题的解决
  9. 计算机中丢失d3dx9 31,d3dx9_31.dll
  10. 安全架构--14--企业安全管理体系建设总结
  11. 基于51单片机的pid算法温度控制系统protues仿真
  12. 键盘输入123456789c语言,Python:键盘输入input
  13. python判断正数和负数教案_正数和负数的教案设计
  14. C++运动会分数统计系统
  15. 用ExtentReports美化你的测试报告
  16. 20211212做实验时的感想
  17. 辩证法中包括一个关系、两大特征、三大规律、四种方法、五对范畴
  18. [2017BUAA软工]第0次个人作业
  19. 谷歌眼镜Mirror API开发指南之Timeline
  20. 7层每次有哪些最基本的协议讲解

热门文章

  1. 复习:线性表——顺序表
  2. dell t40 固态系统盘_天元戴尔(DELL)T40配置教程
  3. linux 磁盘监控,9个在Linux中监视Linux磁盘分区和用法的工具
  4. dbforge studio for oracle 注册,dbForge Studio for Oracle
  5. 2020即将过去,数据库最好的时代已经到来!
  6. Oracle 18c 新特性:动态 Container Map 增强 Application Container 灵活性
  7. SmartCommit让复合提交不在是难题
  8. 【万字长文】探讨可信构架之道
  9. 高性能Web动画和渲染原理系列(4)“Compositor-Pipeline演讲PPT”学习摘要【华为云技术分享】
  10. js学习 字符串常用方法