6-1
List MakeEmpty()
{
List L;
L=(List)malloc(sizeof(struct LNode));
L->Last=-1;
return L;
}
Position Find( List L, ElementType X )
{
Position i=0;
while(i<=L->Last&&L->Data[i]!=X)
i++;
if(i>L->Last) return ERROR;
else return i;
}
bool Insert( List L, ElementType X, Position P )
{
Position i;
if(L->Last==MAXSIZE-1){
printf("FULL");
return false;
}
if(P<0||P>L->Last+1)
{
printf("ILLEGAL POSITION");
return false;
}
for(i=L->Last;i>=P;i--)
L->Data[i+1]=L->Data[i];
L->Data[P]=X;
L->Last++;
return true;
}
bool Delete( List L, Position P ){
Position j;
if(P<0||P>L->Last){
printf("POSITION %d EMPTY",P);
return false;
}
for(j=P;j<L->Last;j++)
L->Data[j]=L->Data[j+1];
L->Last--;
return true;
}
6-3
List Delete( List L, ElementType minD, ElementType maxD ){
int k = 0;
for(int i = 0;i<=L->Last;i++){
if(L->Data[i]>minD&&L->Data[i]<maxD)
{
continue;
}
else
{
L->Data[k++] = L->Data[i];
}
}
L->Last = k-1;
return L;
}