首页 > 其他分享 >9.20号练习

9.20号练习

时间:2023-09-20 21:48:56浏览次数:39  
标签:结点 9.20 练习 List Next L2 L1 else

本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。

函数接口定义:
List Merge( List L1, List L2 );
其中List结构定义如下:

typedef struct Node *PtrToNode;
struct Node {
ElementType Data; /* 存储结点数据 */
PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */
L1和L2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Merge要将L1和L2合并为一个非递减的整数序列。应直接使用原序列中的结点,返回归并后的带头结点的链表头指针。

 1 List Merge(List L1,List L2){
 2     List L,head;
 3     L=head=(List)malloc(sizeof(struct Node));
 4     if(!L1->Next && !L2->Next){
 5         L->Next=NULL;
 6         return L;
 7     }
 8     List i1=L1;
 9     List i2=L2;
10     L1=L1->Next;
11     L2=L2->Next;
12     i1->Next=NULL;
13     i2->Next=NULL;
14     if(L1->Data<L2->Data){
15         L->Next=L1;
16         L1=L1->Next;
17         L=L->Next;
18     }
19     else{
20         L->Next=L2;
21         L2=L2->Next;
22         L=L->Next;
23     }
24     while(L1||L2){
25         if(L1&&L2){
26             if(L1->Data<L2->Data){
27                 L->Next=L1;
28                 L1=L1->Next;
29             }else{
30                 L->Next=L2;
31                 L2=L2->Next;
32             }
33         }
34         else if(!L1){
35         L->Next=L2;
36         L2=L2->Next;
37         }
38         else if(!L2){
39             L->Next=L1;
40             L1=L1->Next;
41         }
42         L=L->Next;
43         L->Next=NULL;
44     }
45     return head;
46 }

 

标签:结点,9.20,练习,List,Next,L2,L1,else
From: https://www.cnblogs.com/Lyh3012648079/p/17718506.html

相关文章

  • 9.20java学习
    1packagestaticDemo1;23publicclassTest1{4publicstaticvoidmain(String[]args){5int[]arr1={1,2,3,4,5};6System.out.println(Arrunit.printArr(arr1));7double[]arr2={1.1,2.2,3.3,4.4};8System.out......
  • 9.20打卡带哨兵的双向环形链表
      importjava.util.ArrayList;//双向环形链表哨兵既是头也是尾哨兵的prev指向最后一个元素,最后一个元素的next指向哨兵publicclassMain{publicstaticvoidmain(String[]args){DoubleLinkedListd=newDoubleLinkedList();d.addFirst(3);......
  • 2023.9.20——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午做任务。我了解到的知识点:1.了解了关于模型训练的一些知识和注意事项;2.了解了关于软件构造的一些知识,明日计划:1.上课;2.比赛;......
  • 9.20闲话
    今天破事一样的多。上午模拟赛终于正常了......
  • 2023.9.20
    学习了java的方法,提出新的方法,解决的将是影响做事成效的根本原因。就是将一个大的模块分成小的模块,再把小模块分成更细的把小小模块,一个模块对应于一个单元。学会了软件工程的模块化原则,把一个复杂的系统划分为子模块,方便设计实现和维护。动手又动脑编写一个方法,使用以上算法生......
  • 大二打卡(9.20)
    今天做了什么:英语课,今天帮英语老师擦了黑板,被老师感谢,开心,上课时候好多高中笔记本上记过的词汇短语都记不住汉语意思了,又是想念高中笔记本的一天,然后上节课讲的短语也没记住,只记得写在哪个位置了,可悲,今天遇到什么问题:英语小测试做题速度大不如前,没有写完全部题目,好多生词不认识......
  • 9.20
    对于VSCode的快捷键编辑和导航:Ctrl+X:剪切当前行或选定的代码块。Ctrl+C:复制当前行或选定的代码块。Ctrl+V:粘贴剪贴板的内容。Ctrl+Z:撤销上一步操作。Ctrl+Y:重做上一步被撤销的操作。Ctrl+F:在当前文件中搜索特定的文本。Ctrl+H:在当前文件中搜索和替换特定......
  • 2023.9.20日报
    今天学习了Springboot+MyBatis的整体架构,有一些细节的内容还不是很理解但是可以总结出一些流程和方法1.首先创建Springboot项目,在创建的时候添加SpringWeb、Thymeleaf、MyBatis依赖2.当项目创建完成之后,就可以配置数据库的相关内容了在application.yml中server:port:80......
  • 9.20日
    一、上午上英语课对前几节课的知识进行了总结,回忆了一下学过的知识。二、然后去了操场看他们体测,主要是看看操场修好没,不得不说这效率实在是高,这么长时间还不修,提前打个预防针。三、下午写了Java动手动脑,还有英语的翻译作业,学了web的前后端结合形式,还有Java的许多接口类似于c++......
  • 9.20日
    今天在英语提高课堂上简单学习了状语从句的用法 ......