/*
============================================================================
Name : Test.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct alist *List;
typedef struct alist {
int n;
int maxsize;
ListItem *table;
}List;
struct listItem{
char name[10];
double price;
}ListItem;
List ListInit(int size);
int ListEmpty(List L);
int ListLength(List L);
int ListLocate(ListItem x,List L);
ListItem ListRetrieve(int k,List L);
void ListInsert(int k,ListItem x,List L );
return 0;
}
List ListInit(int size){
List L=mallloc(sizeof( *L));
L->table=malloc(size* sizeof(ListItem));
L->maxsize=size;
L->n=0;
return L;
}
int ListEmpty(List L){
return L->n==0;
}
int ListLength(List L){
return L->n;
}
int ListLocate(ListItem x,List L){
int i;
for(i=0;i<L->n;i++)
if(L->table[i]==x)
return ++i;
return 0;
}
ListItem ListRetrieve(int k,List L){
if(k<1 || k>L->n)
Error("out of bounds");
return L->table[k-1];
}
void ListInsert(int k,ListItem x,List L ){
int i;
if(k<0 || k>L->n)
Error("out of bounds");
if(L->n==L->maxsize)
Error("out of memory");
for(i=L->n-1;i>=k;i--)
L->table[i+1]=L->table[i];
L->table[k]=x;
L->n++;
}
ListItem ListDelete(int k,List L){
int i;
ListItem x;
if(k<1 || k>L->n)Error("out of bounds");
x=L->table[k-1];
for( i=k;i<L->n;i++) L->table[i-1]=L->table[i];
L->n--;
return x;
}
============================================================================
Name : Test.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct alist *List;
typedef struct alist {
int n;
int maxsize;
ListItem *table;
}List;
struct listItem{
char name[10];
double price;
}ListItem;
List ListInit(int size);
int ListEmpty(List L);
int ListLength(List L);
int ListLocate(ListItem x,List L);
ListItem ListRetrieve(int k,List L);
void ListInsert(int k,ListItem x,List L );
ListItem ListDelete(int k,List L);
return 0;
}
List ListInit(int size){
List L=mallloc(sizeof( *L));
L->table=malloc(size* sizeof(ListItem));
L->maxsize=size;
L->n=0;
return L;
}
int ListEmpty(List L){
return L->n==0;
}
int ListLength(List L){
return L->n;
}
int ListLocate(ListItem x,List L){
int i;
for(i=0;i<L->n;i++)
if(L->table[i]==x)
return ++i;
return 0;
}
ListItem ListRetrieve(int k,List L){
if(k<1 || k>L->n)
Error("out of bounds");
return L->table[k-1];
}
void ListInsert(int k,ListItem x,List L ){
int i;
if(k<0 || k>L->n)
Error("out of bounds");
if(L->n==L->maxsize)
Error("out of memory");
for(i=L->n-1;i>=k;i--)
L->table[i+1]=L->table[i];
L->table[k]=x;
L->n++;
}
ListItem ListDelete(int k,List L){
int i;
ListItem x;
if(k<1 || k>L->n)Error("out of bounds");
x=L->table[k-1];
for( i=k;i<L->n;i++) L->table[i-1]=L->table[i];
L->n--;
return x;
}