马池口二手房:dijkstra算法的改进程序

来源:百度文库 编辑:高考问答 时间:2024/05/05 12:41:05
int exist_path_BFS(Adlist G,int i,int j)
/*广度优先判断有向图G中顶点i到顶点j是否有路径,是则返回1,否则返回0*/
{
int visited[n];
InitQueue(Q);
EnQueue(Q,i);
while(!Queue Empty(Q))
{
DeQueue(Q,u);
visited[n]=1;
for(p=G.adgraph[i].firstarc;p;p=p->nextarc)
{
k=p->adjnum;
if(k==j)return 1;
if(!visited[k])EnQueue(Q,K);
}/*for*/
}/*while*/
return 0 ;
}/*exist_path_BFS*/

void quickSort(SortObject * pvector , int l,int r) /*快速排序算法*/
{
int i,j ;
RecordNode temp;
if(l>=r)return; /*只有一个记录或无记录,则无需排序*/
i=l;j=r;temp=pvector->record[i];
while(i!=j) /*寻找Rl的最终位置*/
{
while((pvector->record[j].key)&&(j>i))
j--; *从右向左扫描,查找第1个排序码小于temp.kep的记录*/
if(i<j)
pvector->record[i++]=pvector->record[j];
while((pvector->record[i].key<=temp.key)&&(j>i))
i++; /*从左向右扫描,查找第1个排序码大于temp.key的记录*/
if(i<j)
pvector->record[i]=temp; /*找到Rl的最终位置*/
quickSort(pvector,l,i-1); /*递归处理左区间*/
quickSort(pvector,i+1,r); /*递归处理右区间*/
}
void quickSort(SortObject * pvector , int l,int r) /*快速排序算法*/
{
int i,j ;
RecordNode temp;
if(l>=r)return; /*只有一个记录或无记录,则无需排序*/
i=l;j=r;temp=pvector->record[i];
while(i!=j) /*寻找Rl的最终位置*/
{
while((pvector->record[j].key)&&(j>i))
j--; *从右向左扫描,查找第1个排序码小于temp.kep的记录*/
if(i<j)
pvector->record[i++]=pvector->record[j];
while((pvector->record[i].key<=temp.key)&&(j>i))
i++; /*从左向右扫描,查找第1个排序码大于temp.key的记录*/
if(i<j)
pvector->record[i]=temp; /*找到Rl的最终位置*/
quickSort(pvector,l,i-1); /*递归处理左区间*/
quickSort(pvector,i+1,r); /*递归处理右区间*/
}