静态链表,初始化、输入、打印、删除、插入
代码:#include <stdio.h>
#define MAXSIZE 1000
typedef struct
{
char date;
int cur;
}nice;
nice * InitList(nice space[]); //初始化数组
nice * getList(nice space[]); //输入数据
void PrinList(nice space[]); //打印数组
nice * deleList(nice space[]); //删除特定的数据
nice * insertList(nice space[]); //插入数据
nice * insertList(nice space[])
{
char T;
int i = 0, temp, ctemp;
T = getchar();
getchar();
while (1)
{
if (i == 0)
{
i = space.cur;
}
else
{
i = space.cur;
}
if (space.date == T)
{
temp = space.cur].cur; //把0数组的下一位数组单独提取出来
space.date = getchar();
getchar();
/*if (space.cur == i) //前插
{
space.cur].cur = space.cur; //把最后两个链表连接起来
space.cur = space.cur; //把第一个链表的下标给与temp下标的cur
space.cur = temp; //把第一个链表数组更改为temp(最后一个数组中的cur是记录谁是第一个带数据数组的)
}
else
{
space.cur].cur = space.cur; //把最后两个链表连接起来
space.cur = i; //把单独腾挪出来的数组数值储存段赋予本次数组数值
space.cur = temp; //把单独腾挪出来的数组的下标赋值给上一个数组的cur位置
}*/
//后插
space.cur].cur = space.cur;
space.cur = space.cur;
space.cur = temp;
break;
}
ctemp = i; //用于前插得变量
}
return space;
}
nice * deleList(nice space[])
{
char T;
int i = 0, temp;
T = getchar();
getchar();
while (1)
{
if (i == 0)
{
i = space.cur;
}
else
{
i = space.cur;
}
if (space.date == T)
{
if (space.cur == i)
{
space.cur = space.cur;
space.cur = space.cur].cur;
space.cur].cur = i;
}
else
{
space.cur = space.cur;
space.cur = space.cur].cur;
space.cur].cur = i;
}
break;
}
temp = i;
}
return space;
}
nice * getList(nice space[])
{
if (space.cur == MAXSIZE)
{
space.cur = 1;
}
space.cur].date = getchar();
getchar();
space.cur = space.cur].cur;
return space;
}
void PrinList(nice space[])
{
int i = 0;
while (1)
{
if (i == 0)
{
i = space.cur;
}
else
{
i = space.cur;
}
if (space.cur == i)
{
break;
}
printf("<%d:%c>",space.cur, space.date);
}
}
nice * InitList(nice space[])
{
int i = 0;
for (i = 0; i <= MAXSIZE -1; i++)
{
space.cur = i + 1;
}
return space;
}
int main()
{
int T;
nice space;
while (1)
{
printf("输入选项:");
scanf("%d", &T);
getchar();
switch(T)
{
case 1:{
InitList(space); //初始化数组
break;
}
case 2:{
getList(space); //输入数据
break;
}
case 3:{
deleList(space); //删除数据
break;
}
case 4:{
insertList(space); //插入数据
break;
}
case 9:{
PrinList(space); //打印数组
putchar('\n');
break;
}
case 0:{
return 0;
}
}
}
return 0;
}
页:
[1]