《数据结构》--严蔚敏 静态链表排序 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;
}

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

时间: 2024-10-12 14:00:22

《数据结构》--严蔚敏 静态链表排序 p270的相关文章

(源代码见大话数据结构)线性表—静态链表

#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXSIZE 1000 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALS 0 typedef int ElemType; typedef int Status; typedef struct { ElemType data; int cur; } Component,Stati

数据结构-线性表-静态链表

对于线性链表,也可用一维数组来进行描述.这种描述方法便于在没有指针类型的高级程序设计语言中使用链表结构. 静态链表是利用数组来实现,只是改变了实现方式,实际上链式存储说的存储的方式,数组只是实现的方式,不能将静态链表看做是顺序存储. 数组的元素都是由两个数据域组成,data和cur.也就是说,数组的每一个下标都对应一个data和一个cur. 数据域data用来存放数据元素,也就是通常我们要处理的数据:而游标cur相当于单链表中的next指针, 存放该元素的后继在数组中的下标.我们把这种用数组描述

[数据结构严蔚敏]线性表-算法2.1

/*algorithm-2.1.c*/ 1 #include<stdio.h> 2 #include<linear_list_ADT.h> 3 4 int main(void){ 5 List LA,LB; 6 int LA_len,LB_len; 7 InitList(&LA); 8 InitList(&LB); 9 /*********get LIST_A***********/ 10 printf("please input length of LA

数据结构(严蔚敏)算法2.3-算法2.4

1 //线性表的插入与删除 2 #include <stdio.h> 3 #include <stdlib.h> 4 #define LIST_INIT_SIZE 100 //线性表存储空间的初试分配量 5 #define LISTINCREMENT 10 //线性表存储空间的分配增量 6 #define ERROR 0 7 #define OK 1 8 typedef struct{ 9 int *elem; //存储空间的基址 10 int length;//当前长度 11 i

基于c语言数据结构+严蔚敏——线性表章节源码,利用Codeblocks编译通过

白天没屌事,那我们就来玩玩线性表的实现吧,快要失业了,没饭吃了咋整哦 题目描述假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B.这就要求对线性表做如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去.只要从线性表LB中依次取得每个元素,并依值在线性表LA中进行查访,若不存在,则插入之. #ifndef FUNC_H_INCLUDED #define FUNC_H_INCLUDE

数据结构 静态链表

数据结构 严蔚敏版本 P31 的静态链表 用一位数组来实现链表 通过数组来实现链表的时候,需要自己定义Malloc和Free函数: 静态链表的结构 1 #define MAXSIZE 10 2 typedef struct { 3 int val; 4 int cur; 5 }SLinkList[MAXSIZE]; 对一个链表进行一下的初始化 1 void InitSpace_SL(SLinkList &space){ 2 for(int i=0; i<MAXSIZE-1; ++i) spa

10-12-顺序表地址排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第10章  内部排序 - 顺序表地址排序 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? SequenceListType.c        相关测试数据下载  链

2-6-静态链表-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第2章  线性表 - 静态链表 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h        相关测试数据下载  链接? 无数据       文档

7-9-有向图无环拓扑排序-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第7章  图 - 有向无环图拓扑排序 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.SequenceStack.c.ALGraph.c