/*实验2 顺序表其它操作
实验目的
1.进一步掌握在线性表的顺序存储结构上的一些其它操作。
实验内容
程序2
已知两个非递减有序的线性表LA和LB,将LA和LB合并成一个线性表LC,LC也非递减有序。
*/
#include <iostream>
#include <cstdio>
using namespace std;
#define ElemType int
#define MAXSIZE 100
//顺序表的操作
/* 顺序存储类型 */
typedef struct
{ElemType data[MAXSIZE]; /*存放线性表的数组*/
int length; /* length是顺序表的长度*/
}SeqList;
/* 初始化顺序表 */
SeqList SeqListInit( )
{SeqList L;
L.length=0;
return L;
}
/* 求顺序表长度 */
int ListLength(SeqList L)
{return(L.length);}
/* 遍历顺序表 */
void ListTraverse(SeqList L)
{int i;
if(L.length<=0) printf("顺序表为空\n");
else {printf("当前顺序表中的元素为:\n");
for(i=1;i<=L.length;i++) printf("%d ",L.data[i-1]);
printf("\n");
}
}
/* 向顺序表中插入元素 */
SeqList ListInsert(SeqList L,int i,ElemType x)
{int j;
if(L.length==MAXSIZE)
printf("表满,不能插入\n");
else if(i<1||i>L.length+1)
printf("插入位置不正确\n");
else {
for(j=L.length-1;j>=i-1;j--)
L.data[j+1]=L.data[j];
L.data[i-1]=x;
L.length++;
}
return L;
}
/* 从顺序表中删除元素 */
SeqList ListDelete(SeqList L,int i)
{int j;ElemType x;
if (i<1||i>L.length)
printf("删除位置不正确\n");
else {x=L.data[i-1];
for(j=i;j<=L.length-1;j++)
L.data[j-1]=L.data[j];
L.length--;
printf("%d已被删除\n",x);
}
return L;
}
//实验内容
SeqList MergeSeqList(SeqList La,SeqList Lb) /*合并顺序表*/
{
int i=0;
int j=0;
SeqList Lc;
Lc=SeqListInit();
if((ListLength(La)+ListLength(Lb))>MAXSIZE)
{
printf("Lc中的元素个数将超界,无法合并\n");
return Lc;
}
for(i=1,j=1;(i<=La.length)&&(j<=Lb.length);)
{
if(La.data[i-1]<=Lb.data[j-1])
{
Lc=ListInsert(Lc,i+j-1,La.data[i-1]);
i++;
}
else //(La.data[i-1]>Lb.data[j-1])
{
Lc=ListInsert(Lc,i+j-1,Lb.data[j-1]);
j++;
}
}
if(i<La.length)
for(;i<=La.length;i++)
Lc=ListInsert(Lc,i+j-1,La.data[i-1]);
else if(j<=Lb.length)
for(;j<=Lb.length;j++)
Lc=ListInsert(Lc,i+j-1,Lb.data[j-1]);
return Lc;
}
void main()
{
int i,j;
SeqList Lc,La,Lb;
La=SeqListInit();
Lb=SeqListInit();
Lc=SeqListInit();
for(i=0;i<100;i=i+2)
La=ListInsert(La,i/2+1,i);
for(j=1;j<100;j=j+2)
Lb=ListInsert(Lb,j/2+1,j);
Lc=MergeSeqList(La,Lb);
ListTraverse(Lc);
}
正文
练习:将有序顺序表归并为一个有序顺序表2006-05-31 02:52:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/bclz/15235.html
阅读(3887) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论