《数据结构》--严蔚敏 静态链表排序 p270

前端之家收集整理的这篇文章主要介绍了《数据结构》--严蔚敏 静态链表排序 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;
}

猜你在找的数据结构相关文章