Cấu trúc dữ liệu danh sách đặc

#include
#include
#define Maxlength 30
//Khai bao danh sach dat
typedef int ElementType;
typedef int Position;
typedef struct {
ElementType Elements[Maxlength];
Position Last;
}
List;
//Tao danh sach rong
void MakeNull_List [List *L]{
L->Last=0;
}
//Kiem tra danh sach rong
int Empty_List[List L]{
return [L.Last==0];
}
//Kiem tra danh sach day
int Full_List[List L]{
return [L.Last==Maxlength];
}
//Tra ve phan tu dau tien
Position FirstList[List L]{
return 1;
}
//Tra ve vi tri sau phan tu cuoi
Position EndList[List L]{
return L.Last+1;
}
//Tra ve phan tu ke tiep vi tri phan tu P trong danh sach L
Position Next[Position P, List L]{
return P+1;
}
//Tra ve phan tu truoc vi tri phan tu P trong danh sach L
Position Previous[Position P, List L]{
return P-1;
}
//Ham tra ve noi dung phan tu tai vi tri P trong danh sach L
ElementType Retrieve[Position P, List L]{
return L.Elements[P-1];
}
//Them phan tu co noi dung X vao tai vi tri P trong danh sach L
void Insert_List[ElementType X, Position P, List *L]{
int i=0;
if [L->Last==Maxlength]
printf[\nDanh sach day!];
else if [[PL->Last+1]]
printf[\nVi 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;
}
}
//Xoa phan tu tai vi tri P trong danh sach L
void Delete_List[Position P, List *L]{
if [[P L->Last]]
printf[\nVi tri khong hop le!];
else
if [Empty_List[*L]]
printf[\nDanh sach rong!];
else {
Position i;
for [i=P; iLast; i++]
{
L->Elements[i-1] = L-> Elements[i];
}
L->Last;
}
}
//In danh L sach ra man hinh
void Print_List[List L]{
Position P;
P = FirstList[L];
//printf[\nBat dau in danh sach ];
while [P != EndList[L]] {
printf[\t%d,Retrieve[P,L]];
P = Next[P,L];
}
//printf[\nKet thuc in danh sach!\n];
}
//Nhap danh sach tu ban phim
void Read_List[List *L]{
int i, N;
ElementType X;
MakeNull_List[L];
printf[\nNhap vao so phan tu trong danh sach ];
scanf[%d, &N]; fflush[stdin];
for [i=1; iEndList
Position Locate[ElementType X, List L]{
Position P;
int found = 0;
P = FirstList[L];
while [[P!=EndList[L]] && [found==0]]{
if[Retrieve [P,L]==X]
found = 1;
else P = Next[P,L];
}
return P;
}

Related

  • [Hàm] Danh sách liên kết đơn [Con trỏ]
  • 30/11/2011
  • In "Cấu trúc dữ liệu"
  • Bài tập trắc nghiệm
  • 27/10/2011
  • In "Cấu trúc dữ liệu"
  • [Lý thuyết] Kiểu dữ liệu trừu tượng
  • 01/11/2011
  • In "Cấu trúc dữ liệu"

Video liên quan

Bài Viết Liên Quan

Chủ Đề