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

📄 1.cpp

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

//创建线性表
//(1.1)先进先出函数-----含表头结点-----'0'为结束符
link	creat11()							//“link” 为前面定义的结构类型指针
{
	link	head,tail,p;
	int		e;
	head=(link)malloc (LENG3);				//生成表头结点
	head->next=NULL;						//置为空表
	tail=head;								//尾指针指向表头
	scanf("%d",&e);	                        //输入第一个数
	while(e)	                            //不为0								         
	{
		p=(link)malloc(LENG3);				//生成新结点
		p->data=e;							//装入输入的元素e
		tail->next=p;						//新结点链接到表尾
		tail=p;								//尾指针指向新结点
		scanf("%d",&e);						//输入第二个数              
	}
	tail->next=NULL;						//尾结点的next置为空指针
	return	head;							//返回头指针
}

//(1.2)先进后出函数-----含表头结点-----'0'为结束符
link	creat12( )							//“link” 为前面定义的结构类型指针
{	
	link	head,p;
	int		e;
	head=(link)malloc(LENG3);				//生成表头结点
	head->next=NULL;						//置为空表
	scanf("%d",&e);							//输入第一个数
	while(e)								//不为0
	{ 
		p=(link)malloc(LENG3);				//生成新结点
		p->data=e;							//输入数送新结点的data
	    p->next=head->next;					//新结点指针指向原首结点
		head->next=p;						//表头结点的指针指向新结点
		scanf("%d",&e);						//输入第二个数
    }
	return head;							//返回头指针
}

//(1.3)生成带头结点的递增有序单链表函数。(不包括0)
link	creat13()
{
	link	head,p,q,f;
	int		e;
	head=(link)malloc(LENG3);				//生成表头结点
	head->next=NULL;						//置为空表
	scanf("%d",&e);							//输入整数
	while (e)								//不为 0,未结束
	{
   		q=head;
		p=head->next;						//q,p扫描,查找插入位置		
		while(p&&e>p->data)					//未扫描完,且e大于当前结点
		{
			q=p;
			p=p->next;						//q,p后移,查下一个位置
		}
		f=(link)malloc(LENG3);				//生成新结点
		f->data=e;							//装入元素e
		f->next=p;							//插入新结点
		q->next=f;							//插入递增有序单链表head
		scanf("%d",&e);						//输入整数
	}
	return head;
}

void	 main1(h_list	&lead)
{
	int choice=1;
	static int	i;			//用静态就是为了保留i的值
	h_table	tab;
	while (choice!=0)
	{ 
		tab=(h_table)malloc(LENG2);
		printf("       //////////////////////////////////////\n");
		printf("       //      请输入数字 0 到 4 选择:     //\n");
	    printf("       //      1.      先进先出表          //\n");
		printf("       //      2.      先进后出表          //\n");
		printf("       //      3.      有序表              //\n");
		printf("       //      0.      退出程序!!!         //\n");
		printf("       //      请输入你的选择:             //\n");
        printf("       //////////////////////////////////////\n");
		scanf("%d",&choice);
		system("cls");
		switch (choice)
		{
			case 1:		tab->type=choice;
						printf("请输入链表名字:");
						scanf("%s",tab->name);
						printf("请输入数据:\n");
						tab->tou=creat11(); 
						lead->assistant[i++]=tab;
						lead->length=i;
						break; 
			case 2:		tab->type=choice;
						printf("请输入链表名字:");
						scanf("%s",tab->name);
						printf("请输入数据:\n");
						tab->tou=creat12(); 
						lead->assistant[i++]=tab;
						lead->length=i;
						break;  
			case 3:		tab->type=choice;
						printf("请输入链表名字:");
						scanf("%s",tab->name);
						printf("请输入数据:\n");
						tab->tou=creat13(); 
						lead->assistant[i++]=tab;
						lead->length=i;
						break;   
			case 0:     break;
			default: printf("输入错误!!!\n");
		}
	}
}

⌨️ 快捷键说明

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