数据结构(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的主要内容,如果未能解决你的问题,请参考以下文章