链表补题完成。
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}link;
int main()
{
link *head,*p,*q,*t;
int n,m;
int num;
head=NULL;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
p=(link *)malloc(sizeof(link));
scanf("%d",&num);
p->data=num;
p->next=NULL;
if(head==NULL)
{
head=p;
}
else
{
q->next=p;
}
q=p;
}
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
p=(link *)malloc(sizeof(link));
scanf("%d",&num);
p->data=num;
p->next=NULL;
q->next=p;
q=p;
}
p=head;
for(p=head;p!=NULL;p=p->next)
{
for(t=p->next;t!=NULL;t=t->next)
{
if(p->data<t->data)
{
int temp=p->data;
p->data=t->data;
t->data=temp;
}
}
}
p=head;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}link;
int main()
{
link *head,*p,*q;
int n,num;
scanf("%d",&n);
head=NULL;
for(int i=1;i<=n;i++)
{
p=(link *)malloc(sizeof(link));
scanf("%d",&num);
p->data=num;
p->next=NULL;
if(head==NULL)
{
head=p;
}
else
{
q->next=p;
}
q=p;
}
p=head;
int min=p->data;
for(p=head;p!=NULL;p=p->next)
{
if(min>p->data)
{
min=p->data;
}
}
p=head;
for(p=head;p!=NULL;p=p->next)
{
if(p->data==min)
{
int t=p->data;
p->data=head->data;
head->data=t;
}
}
p=head;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
return 0;
}
下午写了电梯,学会了如何在使用DFS的状况下找到最小值,原理是:每次递归都将结果存到一个变量中,用min函数取每次的结果的最小值;比上一个结果小就代替,否则继续搜索。