前端之家收集整理的这篇文章主要介绍了
《数据结构》--严蔚敏 静态链表排序 p270,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
// exam1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
typedef struct
{
int data;
int index;
}ELEM;
int main(void)
{
ELEM s[11];
int a[10]={1,45,21,20,10,75,9,100,-13,19};
for(int i=1;i<11;i++)
{
s[i].data=a[i-1];
s[i].index=0;
}
s[0].data=10000;
s[0].index=1;
s[1].index=0;
for(int i=2;i<11;i++)
{
int temp=s[i].data;
int p=0;
int q;
q=s[p].index;
while(1)
{
if(s[q].data<=temp)
{
p=q;
q=s[q].index;
if(q==0)
{
break;
}
}
else
{
break;
}
}
s[i].index=q;
s[p].index=i;
}
int p=0;
int q;
q=s[p].index;
while(q!=0)
{
cout<<s[q].data<<" ";
q=s[q].index;
}
cout<<endl;
p=0;
for(int i=1;i<11;i++)
{
while(p<i)
{
p=s[p].index;
}
int temp;
temp=s[i].data;
s[i].data=s[p].data;
s[p].data=temp;
temp=s[p].index;
s[p].index=s[i].index;
s[i].index=p;
p=temp;
}
for(int i=1;i<11;i++)
{
cout<<s[i].data<<" ";
}
cout<<endl;
system("pause");
return 0;
}