#include <iostream>
using namespace std;
int find_min(int b[],int n,int &flag)
{
int i=0;
int before=0,after=0;
for (i=flag;i<n-1;i++) //该flag为起始点的值
{
before=flag; //将每次比较的最小值给before
while(b[i+1]==-1&&i<n-1) //跳过空值结点
{
i++;
}
after=i+1;
if (b[after]!=-1) //如果after走完了则返回flag结点
{
if (b[before]>b[after])
{
flag=after;
}else{}
}else{}
}
return b[flag];
}
int ini_position(int c[],int n)
{
bool status=false; //初始为定位不成功
int i,flag=0;
for(i=0;i<n-1;i++)
{
if (c[i]!=-1)
{
flag=i;
status=true;
break;
}
}
if (status==false)
{
cout << "该集合中无有效元素!!";
exit(0);
}
return flag;
}
int main()
{
int flag=0;
int a[10]={-1,-1,-1,2,-1,-4,-1,-1,-1,-1};
flag=ini_position(a,10);
cout << " " << flag << endl;
cout << find_min(a,10,flag);
return 0;
}