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

📄 5.cpp

📁 数据结构课程设计
💻 CPP
字号:
#include "head.h"

//排序
//升序函数----所有线性表都排序
void	creat51(h_list	&lead) 
{
	int		i=0;
	link	head,p,q,f,m,n;
	for(i=0;i<lead->length;i++)
	{
		head=(link)malloc(LENG3);				//生成表头结点
		head->next=NULL;						//置为空表
		m=lead->assistant[i]->tou;	
		n=m;
		m=m->next;								//m为需要插入的结点指针
		free(n);
		while (m)								//不为NULL,未结束
		{
   			q=head;
			p=head->next;						//q,p扫描,查找插入位置		
			while(p&&m->data>p->data)			//未扫描完,且e大于当前结点
			{
				q=p;
				p=p->next;						//q,p后移,查下一个位置
			}
			f=(link)malloc(LENG3);				//生成新结点
			f->data=m->data;					//装入元素e
			f->next=p;							//插入新结点
			q->next=f;							//插入递增有序单链表head
			n=m;
			m=m->next;							//输入插入整数
			free(n);
		}
		lead->assistant[i]->tou=head;			//连接头结点
	}
	printf("成功排序所有线性表!!!");
}

//排序
//降序函数----所有线性表都排序
void	creat52(h_list	&lead) 
{
	int		i=0;
	link	head,p,q,f,m,n;
	for(i=0;i<lead->length;i++)
	{
		head=(link)malloc(LENG3);				//生成表头结点
		head->next=NULL;						//置为空表
		m=lead->assistant[i]->tou;	
		n=m;
		m=m->next;								//m为需要插入的结点指针
		free(n);
		while (m)								//不为NULL,未结束
		{
   			q=head;
			p=head->next;						//q,p扫描,查找插入位置		
			while(p&&m->data<p->data)			//未扫描完,且e大于当前结点
			{
				q=p;
				p=p->next;						//q,p后移,查下一个位置
			}
			f=(link)malloc(LENG3);				//生成新结点
			f->data=m->data;					//装入元素e
			f->next=p;							//插入新结点
			q->next=f;							//插入递增有序单链表head
			n=m;
			m=m->next;							//输入插入整数
			free(n);
		}
		lead->assistant[i]->tou=head;			//连接头结点
	}
	printf("成功排序所有线性表!!!");
}

//排序函数
void	main5(h_list	&lead)
{	
	int		choice=1;
	while (choice!=0)
	{          
		printf("      ////////////////////////////////////////////////// \n");
		printf("      //  请输入数字 0 到 2 选择:                     // \n");
		printf("      //  1.  升序                                    // \n");
		printf("      //  2.  降序                                    // \n");
		printf("      //  0.  退出程序!!!                             // \n");
		printf("      //  请输入你的选择:                             // \n");
		printf("      ////////////////////////////////////////////////// \n");
		scanf("%d",&choice);
		system("cls");
		switch (choice)
		{
			case 1:	 creat51(lead);break;					//升序函数
			case 2:  creat52(lead);break;					//降序函数
			case 0:  break;
			default: printf("输入错误!!!\n");
		}
	}
}

⌨️ 快捷键说明

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