⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 习题4-两个有序表合并.c

📁 数据结构各章实验源代码; 数据结构实验源代码
💻 C
字号:
# include   "datastru.h"
# include   <stdio.h>

void merge_sqlist(SEQUENLIST la,SEQUENLIST lb,SEQUENLIST *lc){
/*两有序表合并*/
  int i , j , k ;

  i = j = k = 1 ;
  while( i <= la.last && j <= lb.last )
	   if( la.datas[i] <= lb.datas[j])
	     {lc->datas[k] = la.datas[i] ;
		  k++ ;
		  i++ ; }
	   else
	     {lc->datas[k] = lb.datas[j] ;
		  k++ ;
		  j++ ; }
  while( i <= la.last )
   {	lc->datas[k] = la.datas[i] ;
 	    k++ ;
	    i++ ;}
  while( j <= lb.last )
   {	lc->datas[k] = lb.datas[j] ;
	    k++ ;
	    j++ ;}
  lc->last = k - 1;
  return;
}

main( )
{  SEQUENLIST  la, lb, lc;
   int  i, k, m;

printf("请输入la顺序表元素,元素为整型量,用空格分开,-99为结束标志 :");
la.last = 0; i = 0; scanf("%d",&i);
while (i != -99) {
/*输入la顺序表元素,建立有序表*/
	k = la.last;
	while((k>=1) && ( i<la.datas[k])) k--;
	for(m = la.last; m >= k+1; m--)  la.datas[m + 1] = la.datas[m];
	la.datas[k + 1] = i;
	la.last++;
	scanf("%d",&i); }
printf("\n\n请输入lb顺序表元素,元素为整型量,用空格分开,-99为结束标志 :");
lb.last = 0; i = 0; scanf("%d",&i);
while (i != -99) {
/*输入lb顺序表元素,建立有序表*/
	k = lb.last;
	while((k>=1) && ( i<lb.datas[k])) k--;
	for(m = lb.last; m >= k+1; m--)  lb.datas[m + 1] = lb.datas[m];
	lb.datas[k + 1] = i;
	lb.last++;
	scanf("%d",&i); }
printf("\nla有序表元素列表 :");
for (i = 1; i <= la.last; i++)
   printf("%4d",la.datas[i]);
printf("\n");
printf("\nlb有序表元素列表 :");
for (i = 1; i <= lb.last; i++)
   printf("%4d",lb.datas[i]);
printf("\n");
merge_sqlist (la, lb, &lc);
printf("\n合并后lc有序表元素列表 :");
for (i = 1; i <= lc.last; i++)
   printf("  %d",lc.datas[i]);
printf("\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -