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

📄 3.cpp

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

//插入
//(3.1)插入先进先出函数-----含表头结点-----'0'为结束符
void	creat31(link	&head,int	e)
{	
	link	tail,p;
	tail=head;								//尾指针指向表头
	while(tail->next)
		tail=tail->next;
	while(e)								//不为0
	{
		p=(link)malloc(LENG3);				//生成新结点
		p->data=e;							//装入输入的元素e
		tail->next=p;						//新结点链接到表尾
		tail=p;								//尾指针指向新结点
		scanf("%d",&e);						//再输入一个数
	}
	tail->next=NULL;						//尾结点的next置为空指针
}

//插入
//(3.2)插入先进后出函数-----含表头结点-----'0'为结束符
void	creat32(link	&head,int	e)
{
	link	p;
	while(e)								//不为0
	{ 
		p=(link)malloc(LENG3);				//生成新结点
		p->data=e;							//输入数送新结点的data
	    p->next=head->next;					//新结点指针指向原首结点
		head->next=p;						//表头结点的指针指向新结点
		scanf("%d",&e);						//再输入一个数
    }

}

//插入
//(3.3)插入带头结点的递增有序单链表函数。(不包括0)
void	creat33(link	&head,int	e)
{
	link	p,q,f;
	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);						//输入整数
	}
}

//将新数据元素插入到指定的线性表中
void main3(h_list	&lead)
{
	int		i=0,temp=0,e=0;
	char	moniker[12];
	printf("请输入要插入线性表的名字:");
	scanf("%s",moniker);
	for(i=0;i<lead->length;i++)
	{
		temp=strcmp(lead->assistant[i]->name,moniker);
		if(!temp)	break;		
	}
	if(!temp)	printf("有此线性表!!!\n");
	else	
	{
		printf("无此线性表!!!\n");
		exit(0);
	}	
	printf("请输入要插入线性表的数据:");
	scanf("%d",&e);
	switch(lead->assistant[i]->type)
	{
		case 1:		creat31(lead->assistant[i]->tou,e);	break;		//插入先进先出函数-----含表头结点-----'0'为结束符
		case 2:		creat32(lead->assistant[i]->tou,e);	break;		//插入先进后出函数-----含表头结点-----'0'为结束符
		case 3:		creat33(lead->assistant[i]->tou,e);	break;		//插入带头结点的递增有序单链表函数。(不包括0)
	}
}

⌨️ 快捷键说明

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