Description
(线性表)设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:找出最小值结点,且打印该数值。
Input
输入长度:6
输入数据:3 2 1 4 6 8
Output
1
Sample Input
6
11 14 5 6 8 9
Sample Output
5
【AC代码】:
#include <malloc.h>
#include <stdio.h>
typedef struct Node
{
int data;
struct Node *next;
} SqList;
void InitList(SqList *&L)
{
L=(SqList *)malloc(sizeof(SqList));
L->next=NULL;
}
void Insert(SqList *&L,char x)
{
/**尾插法建表*/
SqList *s,*p;
p=L;
while(p->next!=NULL)
p=p->next;
s=p;
p=(SqList *)malloc(sizeof(SqList));
p->data=x;
s->next=p;
p->next=NULL;
}
int Min(SqList *&L)
{
SqList *p;
p=L->next; //这一步当设p=L时提交会出错,不过自己测试数据时看不出来...
int min=0xffff;
while(p!=NULL)
{
if(min>p->data)
min=p->data;
p=p->next;
}
return min;
}
int main()
{
SqList *L;
InitList(L);
int n;
scanf("%d",&n);
int i,a;
for(i=0; i<n; i++)
{
scanf("%d",&a);
Insert(L,a);
}
printf("%d\n",Min(L));
free(L);
return 0;
}