0
点赞
收藏
分享

微信扫一扫

(C语言)在有序链表中插入数据 (40 分)

niboac 2022-03-23 阅读 59

在有序链表中插入数据 (40 分)

输入格式:

输出格式:

输入样例1:

在这里给出一组输入。例如:

5 1 3 6 9 11
4

输出样例1:

在这里给出相应的输出。例如:

1 3 4 6 9 11

输入样例2:

在这里给出一组输入。例如:

5 1 3 6 9 11
3

输出样例2:

在这里给出相应的输出。例如:

1 3 6 9 11

题解

#include <stdio.h>
#include <stdlib.h> 

//单链表定义
typedef struct Node{
	int data;
	struct Node *next;
}LNode,*LinkList;

//单链表插入
void InsertList(LinkList L,int x){
	LinkList p, pp,q;
	pp = (LinkList)malloc(sizeof(LNode));
	pp->data = x;
    for (q = L->next; q && q->data != x; q = q->next);
    if(q!=NULL) return;
	for (p = L; p->next && p->next->data < x; p = p->next);//当数据大于时跳出
	pp->next = p->next;
	p->next = pp;
}
//打印
void PrintList(LinkList L){
	LinkList p = L->next;
	while(p){
        if(p->next!=NULL){
            printf("%d ",p->data);
            p = p->next;
        }else{
            printf("%d",p->data);
            p = p->next;
        }
	}
}

int main(){
	int n,t;
	LinkList L = (LinkList)malloc(sizeof(LNode));
	L->next = NULL;
	if(scanf("%d",&n)==1){
        for(int i=0;i<n+1;i++){
            if(scanf("%d",&t)==1)
                InsertList(L,t);
        }
        PrintList(L);
    }
	return 0;
}

在这里插入图片描述

举报

相关推荐

0 条评论