数据结构(C语言版) 线性表 算法设计Demo16

Posted 华辰永利

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版) 线性表 算法设计Demo16相关的知识,希望对你有一定的参考价值。

假设有两个元素值递增有序的线性表La和Lb,均以带头结点的单链表作为存储结构,编写算法将La表和Lb表合并为一个元素值递减有序排列的线性表Lc,并要求利用原表(La和Lb表)的结点存放表Lc。

[算法分析]

对单链表La和Lb进行扫描,将表La和Lb当前结点中较小者,插入Lc表表头。

[算法描述]

struct Lnode
	datatype data;
	struct Lnode * next;

void merge_dowum(Linklist &La,Linklist &Lb,Linklist &Lc)
	pa=La->next;
	pb=Lb->next;
	pc=La;
	Lc->next==NULL;
	while(pa||pb)
		if(!pa) // 只要存在一个非空表,用pc指向待摘取元素
			pc=pa;
			pa=pa->next;
		else if(!pb)
			pc=pb;
			pb=pb->next;
		else if(pa->data<=pb->data)
			pc=pb;
			pb=pb->next;
		else
			pc=pb;
			pb=pb->next;
		else
			pb=pb;
			pb=pb->next;
		
		pc->next=Lc->next; // 将pc指向的结点插在Lc的头结点之后
		Lc->next=pc;
	

以上是关于数据结构(C语言版) 线性表 算法设计Demo16的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(C语言版) 线性表 算法设计Demo17

数据结构(C语言版) 线性表 算法设计Demo19

数据结构(C语言版) 线性表 算法设计Demo11

数据结构(C语言版) 线性表 算法设计Demo29

数据结构(C语言版) 线性表 算法设计Demo26

数据结构(C语言版) 线性表 算法设计Demo24