// 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; }
《数据结构》--严蔚敏 静态链表排序 p270,布布扣,bubuko.com
原文:http://blog.csdn.net/cjc211322/article/details/38293129