#include <stdio.h>
#include <conio.h>
#define MaxLength 1000
typedef int ElementType;
typedef int Position;
typedef struct
{
ElementType Elements[MaxLength];
Position Last;
}List;
void MakeNull_List(List *L)
{
L->Last==0;
}
Position FirstList(List L)
{
return 1;
}
ElementType Retrieve(Position P, List L)
{
return L.Elements[P-1];
}
Position EndList(List L)
{
return L.Last+1;
}
Position Next(Position P, List L)
{
return P+1;
}
void Insert_List(ElementType X, Position P, List *L)
{
int i=0;
if(L->Last==MaxLength)
printf("\n danh sach day");
else
if((P<1)||(P>L->Last+1))
printf("\n vi tri khong hop le");
else
{
for(i=L->Last;i>=P;i--)
L->Elements[i]=L->Elements[i-1];
L->Last++;
L->Elements[P-1]=X;
}
}
void Print_List(List L)
{
Position P;
P=FirstList(L);
while(P!=EndList(L))
{
printf("\n%d",Retrieve(P,L));
P=Next(P,L);
}
printf("\n ket thuc in danh sach");
}
void Read_List(List *L)
{
int i,N;
ElementType X;
MakeNull_List(L);
printf("\n nhap vao so phan tu trong danh sach: ");
scanf("%d",&N);
for(int i=1;i<=N;i++)
{
printf("\n phan tu thu %d la ",i);
scanf("%d",&X);
Insert_List(X,EndList(*L),L);
}
}
ElementType Max_Value(List L)
{
Position P=FirstList(L);
ElementType Max_Temp = Retrieve(P,L);
while(P!=EndList(L))
{
if(Max_Temp < Retrieve(P,L))
Max_Temp=Retrieve(P,L);
P=Next(P,L);
}
return Max_Temp;
}
ElementType Min_Value(List L)
{
Position P=FirstList(L);
ElementType Min_temp=Retrieve(P,L);
while(P!=EndList(L))
{
if(Min_temp>Retrieve(P,L))
Min_temp=Retrieve(P,L);
P=Next(P,L);
}
return Min_temp;
}
int main()
{
List L,L_Chan,L_Le;
ElementType X;
Position P;
MakeNull_List(&L);
Read_List(&L);
printf("\n danh sach vua nhap la: ");
Print_List(L);
printf("\n noi dung phan tu lon nhat trong danh sach %d",Max_Value(L));
printf("\n noi dung phan tu nho nhat trong danh sach %d",Min_Value(L));
getch();
return 0;
}
Không có nhận xét nào:
Đăng nhận xét