algrithm_two_twelve.cpp

来自「数据结构的的源码」· C++ 代码 · 共 85 行

CPP
85
字号
#include<stdio.h>
#include<stdlib.h>

#define Elemtype int

typedef struct Lnode{
Elemtype data;
struct Lnode *next;
}LNode,*Linklist;


char GreateList(Linklist &L,int n)
{
 Linklist P;
 L=(Linklist)malloc(sizeof(LNode));
 if(L==NULL)return 0;
 L->next=NULL;

 for(int i=n;i>0;i--)
 {
  P=(Linklist)malloc(sizeof(LNode));
  if(P==NULL)return 0;
  scanf("%c",&P->data);
  P->next=L->next;
  L->next=P;
 }
  return 1;
}

void Merglist(Linklist La,Linklist Lb,Linklist &Lc)
{
  Linklist P1,P2,P3;
  if(La->data<Lb->data)
  {Lc=La;
      P1=La->next;
	  P2=Lb;}
  else
      {Lc=Lb;
      P1=La;
	  P2=Lb->next;}
  P3=Lc;
  while((P1!=NULL)&&(P2!=NULL))
  {
    if(P1->data<P2->data)
	{P3->next=P1;
     P3=P1;
	 P1=P1->next;}
	else
		{P3->next=P2;
     P3=P2;
	 P2=P2->next;}
  }
  P3->next=P1?P1:P2;
}


void main()
{
 Linklist L,P,K,Q;
 int n=3;
 K=(Linklist)malloc(sizeof(LNode));
 if(K==NULL) exit(0);
 //K->next=NULL;
 GreateList(L,n);
 Q=L->next;
 while(Q!=NULL)
 {
  printf("%c",Q->data);
  Q=Q->next;}

 GreateList(P,n);
 Q=P->next;
 while(Q!=NULL)
 {
  printf("%c",Q->data);
  Q=Q->next;}

 Merglist(L->next,P->next,K->next);
  Q=K->next;
 while(Q!=NULL)
 {
  printf("%c",Q->data);
  Q=Q->next;}

}

⌨️ 快捷键说明

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