该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#define max 10000
typedef struct
{
int data;
int cursor;
}Component,StaticList[max];
void Print(Component space[],int *av);
void Choose(int choice,Component space[],int *av);
void initial(Component space[],int *av);
int GetNode(Component space[],int *av);
void FreeNode(Component space[],int *av,int k);
void Insbefore(Component space[],int i,int *av);
void Delete(Component space[],int i,int *av);
int main()
{
int av;//备用链表的头指针
Component space[max];
system("color a");
Print(space,&av);
while(true)
{
printf("按enter键继续...");
getchar();
getchar();
system("cls");
Print(space,&av);
}
return 0;
}
void Print(Component space[],int *av)
{
int choice;
printf("Made By 杨梅树的盔甲~O(∩_∩)O~\n");
printf("---------------------\n");
printf("使用说明:本程序可重复初始化并建立新静态单链表.\n");
printf(" 以及对静态单链表的一些常用操作函数的调用实例.\n");
printf("---------------------\n");
printf("1.初始化静态单链表.\n");
printf("2.建立新的静态单链表.\n");
printf("3.打印当前静态单链表.\n");
printf("4.在已用静态单链表的第i个元素之前插入元素x.\n");
printf("5.删除已用静态单链表的第i个元素.\n");
printf("6.按其它任意键退出.\n");
printf("---------------------\n");
printf("请选择你要的操作:");
scanf("%d",&choice);
Choose(choice,space,av);
}
void Choose(int choice,Component space[],int *av)
{
int num;
int x;
int i;
int temp;
switch(choice)
{
case 1:
initial(space,av);
break;
case 2:
//采用头插法建表
printf("请输入静态单链表的元素个数:");
scanf("%d",&num);
printf("请输入单链表的元素:\n");
for(i=1;i<=num;i++)//头插
{
scanf("%d",&x);
temp=GetNode(space,av);
space[temp].data=x;
space[temp].cursor=space[0].cursor;
space[0].cursor=temp;
}
printf("建表成功!");
break;
case 3:
printf("当前单链表为:\n");
temp=0;
while(space[temp].cursor!=-1)
{
temp=space[temp].cursor;
printf("%d ",space[temp].data);
}
break;
case 4:
//在已用静态单链表的第i个元素之前插入元素x
printf("请输入要插入的位置i:");
scanf("%d",&i);
Insbefore(space,i,av);
printf("插入成功!");