解题思路:

注意事项:

结构体使用,结构体指针


参考代码:


#include<stdio.h>
#include<malloc.h>


typedef struct Node {
	int  sno;
	int sc;
	struct Node* next;
}node, * LinkList;

LinkList L,La,lc;
InitList(LinkList* L) {
    	*L = (LinkList)malloc(sizeof(node));	//建立头结点
	(*L)->next = NULL;						//建立空的单链表L
}

void CreateFromHead(LinkList L,int flag) {
	node* s;
	int c;
	int n;
	int f=0;
	while (f<flag) {
	    scanf("%d", &n);
		scanf("%d", &c);
		
		f++;
		//if (c != 0) {
			s = (node*)malloc(sizeof(node));//建立新结点
			s->sc = c;
			s->sno=n;
			s->next = L->next;				//将s结点插入表头
			L->next = s;
	//	}
	
	}
}


void OutputList(LinkList L) {
	if (L->next == NULL) {
		printf("空表!");
	}
	else {
	  node* p;
		p = L->next;
		while (p) {
			printf("%d %d\n", p->sno,p->sc);
			p = p->next;
		}
	}
}


/*升序排序*/
void AscSort(LinkList L) {
	node* s, * pre, * p, * temp;
	//if (L->next == NULL)
	//	return ERROR;
	s = L->next->next;
	L->next->next = NULL;
	while (s != NULL) {
		pre = L;
		p = L->next;
		while (p && s->sno > p->sno) {
			pre = p;
			p = p->next;
		}
		temp = s->next;
		pre->next = s;
		s->next = p;
		s = temp;
	}
}

void hb(LinkList l1,LinkList l2){
   // printf("l3:");
    node *pa,*pb,*r;
    LinkList l3;
    pa=l1->next;
    pb=l2->next;
    l3=l1;
    l3->next=NULL;
    r=l3;
    while(pa!=NULL&&pb!=NULL){
        if(pa->sno<pb->sno){
            r->next=pa;r=pa;pa=pa->next;
        }
        else{
            r->next=pb;r=pb;pb=pb->next;
        }
    }
    
    if(pa)
    r->next=pa;
    else
    r->next=pb;
    free(l2);
    //printf("l3:");
     OutputList(l3);
   // return (l3);
     
    
}

int main()
{
    InitList(&L);
    InitList(&La);
    int flag;
    int a;
    scanf("%d",&flag);
    scanf("%d",&a);
    CreateFromHead(L,flag);
    CreateFromHead(La,a);
    AscSort(L);
    AscSort(La);
    //OutputList(L);
    //printf("\n");
    //OutputList(La);
    //printf("l3:\n");
    hb(L,La);
    
   
	return 0;
}
点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论