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