📄 3.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 + -