⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 直接插入排序.cpp

📁 实现了循环便利一棵树
💻 CPP
字号:
//编译通过,运行成功
# include <stdio.h>
# include<malloc.h>
# include<stdlib.h>
# define Maxsize 20
# define ERROR 0
# define OK 1
# define LT(a,b) ((a)<(b))
typedef int KeyType;
typedef char *InfoType;
typedef int Status;
typedef struct  { KeyType key;
                  InfoType otherinfor;
				} RcdType;
typedef struct  { RcdType r[Maxsize+1];
                  int length;
				}SqList;

void InsertSort(SqList &L)
{   int i,j;
  	for(i=2;i<=L.length;++i)
		if(LT(L.r[i].key,L.r[i-1].key))
		{
			L.r[0].key=L.r[i].key;
			L.r[0].otherinfor=L.r[i].otherinfor;
			for(j=i-1;LT(L.r[0].key,L.r[j].key);--j)
			{
				L.r[j+1].key=L.r[j].key;
				L.r[j+1].otherinfor=L.r[j].otherinfor;
			}
			L.r[j+1].key=L.r[0].key;
			L.r[j+1].otherinfor=L.r[0].otherinfor;
		}
}

Status CreateSqlist(SqList &L)
{	RcdType *rc;
	int i;
	static char str[Maxsize+1][10];
	if(!(rc=(RcdType*)malloc((1+Maxsize)*sizeof(RcdType))))
		return(ERROR);
	rc=L.r;
	L.length=0;
	printf("请输入表中记录个数:");
	scanf("%d",&L.length);
	for(i=0;i<=L.length;i++)
		L.r[i].otherinfor=&str[i][0];
	printf("请输入表中各条记录(输入格式为:整型关键字 字符串型其它信息):\n");
	for(i=1;i<=L.length;i++)
	{
		scanf("%d%*c",&L.r[i].key);
		scanf("%s",L.r[i].otherinfor);
	}
	return OK;
}

Status PrintSqlist(SqList L)
{	int i;
	for(i=1;i<=L.length;i++)
	{
		printf("%d\t",L.r[i].key);
		printf("%s",L.r[i].otherinfor);
		printf("\n");
	}
	return OK;
}

void main()
{	SqList L;
	CreateSqlist(L);
	InsertSort(L);
	PrintSqlist(L);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -