几个感觉不错的简单算法
void merge1(LinkList *La,LinkList *Lb,LinkList *Lc);//将俩有序链表合并成有序链表
void merge2(LinkList *La,LinkList *Lb,LinkList *Lc);//将两个非递减的链表合并成一个非递增的链表
void Dif(LinkList *La,LinkList Lb,LinkList Lc);//删除有序链表A中B,C共有的元素
//union two sorted linklist
void merge1(LinkList *La,LinkList *Lb,LinkList *Lc)
{
Lnode *p=(*La)->next,*q=(*Lb)->next,*r;
*Lc=r=*La;//r和*lc同时指向**la
while(p&&q)
{
if(p->data<=q->data)
{
r->next=p;//将下一节点指向la的当前节点
r=p;//将r移向当前节点
p=p->next;//指针后移
}
else
{
r->next=q;
r=q;
q=q->next;
}
}
r->next=p?p:q;
//
free(q);
//书上写有这句,加上它之后再vc过不了,感觉也没什么意义。
}
void merge2(LinkList *La,LinkList *Lb,LinkList *Lc)
{
Lnode *p=(*La)->next,*q=(*Lb)->next,*r;
while(p||q)
{
if(p==NULL)
{
r=q;q=q->next;
}
else if(!q)
{
r=p;p=p->next;
}
else if(p->data<=q->data)
{
r=p;p=p->next;
}
else
{
r=q;q=q->next;
}
r->next=(*Lc)->next;//insert at front
(*Lc)->next=r;
}
//delete La;delete Lb;
}
void Dif(LinkList *La,LinkList Lb,LinkList Lc)
{
Lnode *pa=(*La)->next,*pb=Lb->next,*pc=Lc->next,*r,*pre;//when you want to delete a node you need know the last node's point
pre=*La;//pre point to the head node at begining
while(pa&&pb&&pc)
{
if(pa->data<pb->data)
{
pre=pa;pa=pa->next;
printf("hahha");
}
else if(pb->data<pc->data) pb=pb->next;
else if(pc->data<pa->data) pc=pc->next;
else{
pre->next=pa->next;
//delete pa;
pa=pa->next;
}
}
}
分享到:
相关推荐
根据给定的信息,我们可以推断出这是一份针对《数据结构》科目的考研复习资料,由黄明编写。下面将详细解析《数据数据结构》考研复习精编中的关键知识点及复习策略。 ### 数据结构基本概念 #### 1. 数据结构定义 ...
2018数据结构考研复习指导旨在帮助备考者系统、高效地复习这一关键领域,以便在考试中取得理想的成绩。 数据结构是研究数据的逻辑表示和物理存储,以及如何在这些数据上进行有效操作的一门学科。它不仅涵盖了基本的...
### 数据结构考研复习精编知识点概述 #### 一、线性表 **1.1 线性表的定义和基本操作** - **定义**:线性表是一种基本且重要的数据结构,它由一系列元素组成,这些元素按照一定的顺序排列,并且每个元素除了第一...
对于考研复习,重点要掌握以下内容: 1. 线性结构:深入理解数组和链表的特性,包括它们的插入、删除、查找操作的时间复杂度。栈和队列的应用场景,如递归、回溯、优先队列等。 2. 树形结构:二叉树、平衡树(如...
在南邮的考研复习中,主要会涵盖以下几个关键知识点: 1. **线性结构**:如数组、链表、队列和栈。数组是最基本的数据结构,提供固定大小的存储空间;链表允许动态插入和删除,但访问速度较慢;队列是一种先进先出...
这份"计算机考研数据结构复习指导Word版"提供了一条有效的学习路径,帮助考生们精准定位并攻克这个领域的关键点。 复习指导文档《复习指导(数据结构部分).doc》可能涵盖了以下内容: 1. **基本概念**:数据结构...
计算机考研复习是一个全面而深入的过程,涉及到的知识点广泛且繁多。这个名为“计算机考研复习课件ppt”的压缩包文件,显然为考生提供了宝贵的复习资料。下面,我们将详细探讨其中可能涵盖的重要知识点。 首先,...
这份"数据结构考研复习ppt"包含了大量的知识点和详细讲解,不仅适用于考研复习,也适合于课堂教学。 首先,数据结构是关于如何在计算机中组织、存储和管理数据的学科。它研究的是数据的逻辑结构(如线性结构、树形...
根据给定的信息,本文将详细解析“计算机考研复习题”中的关键知识点,特别是与“数据结构与算法分析”相关的部分,这些内容对于准备参加华中科技大学计算机专业研究生入学考试的学生来说至关重要。 ### 计算机考研...
"计算机考研王道2019年数据结构考研复习指导"是一份专门为2020年考研学子量身打造的复习资料。这份资料在大纲发布之前,为考生提供了宝贵的复习资源,帮助他们提前准备,抢占先机。 数据结构是研究如何组织和管理...
本复习指导聚焦于2022年的考研选择题,涵盖了数据结构的基础概念和算法评估等相关知识。 1. 数据结构的基本概念: - 抽象数据类型(ADT)是定义数据结构的关键,它包括数据元素、数据对象和数据关系。选项D正确,...
这份"数据结构考研复习笔记"是作者原创的复习资料,旨在帮助考生系统性地整理和复习数据结构的所有关键概念。 笔记内容可能涵盖以下几个方面: 1. **基本概念**:首先,会介绍数据结构的基本概念,如什么是数据、...
数据结构笔记-考研复习 数据结构是计算机科学中的一门重要学科,研究如何组织、存储和使用数据。下面是考研复习笔记中的一些重要知识点: 1. 数据结构定义:数据结构是指数据元素之间的逻辑关系、数据的运算和存储...
### 考研计算机复习资料数据结构知识点解析 #### 一、基础知识概述 **考查目标:** 1. **理解数据结构的基本概念;** - 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。它包括数据的逻辑结构、...
计算机考研复习经验分享 在计算机科学与技术领域,考研是一项重要的学术挑战,旨在选拔具备深入研究潜力的学生。本文将从五个关键部分详细阐述一个全面的考研复习策略,以帮助备考者提升自己的竞争力。 第一部分:...