没想到做出来和数组一样
线性表的顺序存储
| Time Limit: 1000MS |
Memory Limit: 65535KB |
| Submissions: 1691 |
Accepted: 457 |
Sample Input
10
55
1 2 33 44 55 55 55 44 55 12
Sample Output
12 55 44 55 55 55 44 33 2 1
12 44 44 33 2 1
# include<stdio.h>
# define Size 1000
int size;
struct node
{
int date[Size];
}SeqList;//似乎不用结构体也一样
void ListInsert(int item)//插入
{
int i;
for(i=size;i>0;i--)
SeqList.date[i]=SeqList.date[i-1];
SeqList.date[0]=item;
size++;
}
int ListDelete(int item)//删除
{
int i=0,j;
while(SeqList.date[i]!=item)
i++;
for(j=i+1;j<size;j++)
if(SeqList.date[j]!=item)
{
SeqList.date[i]=SeqList.date[j];
i++;
}
return i;
}
int main()
{
int nNum,num,i,sign;
size=0;
scanf("%d",&nNum);
scanf("%d",&num);
for(i=0;i<nNum;i++)
{
scanf("%d",&sign);
ListInsert(sign);
}
for(i=0;i<nNum-1;i++)
printf("%d ",SeqList.date[i]);
printf("%d\n",SeqList.date[i]);
size=ListDelete(num);
for(i=0;i<size-1;i++)
printf("%d ",SeqList.date[i]);
printf("%d\n",SeqList.date[i]);
return 0;
}
这样似乎更像线性表的顺序存储哈
# include<stdio.h>
# define Size 1000
int size;
typedef int DATE;
typedef struct
{
DATE date[Size+1];
int length;
}SeqList;
void SeqListInit(SeqList *SL)//初始化
{
SL->length=0;
}
void SeqListInsert(SeqList *SL,DATE item)//插入
{
int i;
for(i=SL->length;i>0;i--)
SL->date[i]=SL->date[i-1];
SL->date[0]=item;
SL->length++;
}
int SeqListDelete(SeqList *SL,DATE item)//删除
{
int i=0,j;
while(SL->date[i]!=item)
i++;
for(j=i+1;j<SL->length;j++)
if(SL->date[j]!=item)
{
SL->date[i]=SL->date[j];
i++;
}
return i;
}
int main()
{
int nNum,num,i,sign;
size=0;
SeqList SL;
SeqListInit(&SL);
scanf("%d",&nNum);
scanf("%d",&num);
for(i=0;i<nNum;i++)
{
scanf("%d",&sign);
SeqListInsert(&SL,sign);
}
for(i=0;i<nNum-1;i++)
printf("%d ",SL.date[i]);
printf("%d\n",SL.date[i]);
SL.length=SeqListDelete(&SL,num);
for(i=0;i<SL.length-1;i++)
printf("%d ",SL.date[i]);
printf("%d\n",SL.date[i]);
return 0;
}