#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct node
{
int date;
struct node *next;
struct node *prior;
}List;
void InitList(List *head,int n)
{
List* p=head,*q;
int i;
for(i=0;i<n;i++)
{
q=(List *)malloc(sizeof(List));
q->next=NULL;
scanf("%d",&q->date);
p->next =q;q->prior=p;
p=q;
}
q->next=NULL;
}
void Sort(List*head)//选择排序
{
List *p=head->next,*q;//p指针指向第一个数据结点
int MIN;
List *s;//保存最小值的地址
int Find;
while(p!=NULL)
{
Find =0;//初始化没有找到
q=p->next;//q指针指向下一个结点
MIN=p->date;//最开始把最小值设为p所指的结点
while(q!=NULL)//先把链表走一遍找到最小值进行交换
{
if(q->date<MIN)
{
Find=1;
MIN=q->date;
s=q;
}
q
SWUST OJ 960: 双向链表的操作问题
最新推荐文章于 2024-07-25 14:57:29 发布