Thao tác cơ bản về danh sách LIFO FIFO.
Friday, November 7, 2014
Thao tác cơ bản về danh sách LIFO FIFO.
#include <stdio.h>
#include <conio.h>
typedef struct node
{
int info;
node *link;
};
void xem(node *f)
{
node *p;
p=f;
while
(p!=NULL)
{
printf("%5d",p->info);
p=p->link;
}
}
node
*nhaplifo(node *f,int n)
{
node *p;
for (int i=0;i<n;i++)
{
p=new(node);
printf("\nMoi
nhap so nguyen : ");
scanf("%d",&p->info);
p->link=f;
f=p;
}
return f;
}
node
*nhapfifo(node *f,node *l,int n)
{
node *p;
for (int i=0;i<n;i++)
{
p=new(node);
printf("\nMoi
nhap so nguyen : ");
scanf("%d",&p->info);
if
(f==NULL){
f=p;
l=p;
}
else
{
l->link=p;
l=p;
}
}
return f;
}
node
*seach(node *f,int x)
{
node *p;
p=f;
while
(p!=NULL&&p->info!=x) p=p->link;
return p;
}
node
*themdau(node *f)
{
node *p;
p=new(node);
printf("\nMoi
nhap so nguyen : ");
scanf("%d",&p->info);
p->link=f;
return p;
}
node
*themcuoi(node *f)
{
node *p,*x;
x=new(node);
printf("\nMoi
nhap so nguyen : ");
scanf("%d",&x->info);
x->link=NULL;
if
(f==NULL) return x;
else {
////dua
con tro p tro vao o cuoi danh sach////
p=f;
while (p->link!=NULL) p=p->link;
/////////////////////////////////////////////
p->link=x;
return f;
}
}
node
*xoadau(node *f)
{
node *p;
p=f->link;
delete
(f);
return p;
}
node
*xoacuoi(node *f)
{
node *p,*x;
if
(f->link==NULL) {
delete(f);
return
NULL;
}
p=f;
while
(p->link!=NULL){
x=p;
p=p->link;
}
x->link=NULL;
delete(p);
return f;
}
void sapxeptang(node *f)
{
node *p1,*p2;
int tg;
p1=f;
while
(p1->link!=NULL){
p2=p1->link;
while
(p2!=NULL){
if
(p1->info>p2->info){
tg=p1->info;
p1->info=p2->info;
p2->info=tg;
}
p2=p2->link;
}
p1=p1->link;
}
}
void sapxepgiam(node *f)
{
node *p1,*p2;
int tg;
p1=f;
while
(p1->link!=NULL){
p2=p1->link;
while
(p2!=NULL){
if
(p1->info<p2->info){
tg=p1->info;
p1->info=p2->info;
p2->info=tg;
}
p2=p2->link;
}
p1=p1->link;
}
}
void main()
{
node *f=NULL; //nếu danh sách fifo thì thay bằng
// node *f=NULL,*l=NULL;
int n;
printf("\n N =
");
scanf("%d",&n);
f=nhaplifo(f,n); //nếu danh
sách fifo thì thay bằng
// f=nhapfifo(f,l,n);
printf("\nDanh sach vua nhap :");
xem(f);
printf("\nThem dau :");
f=themdau(f);
printf(" ");// lệnh
in này căn chèn dấu cách cho xem thửng đẹp hơn
xem(f);
printf("\nThem
Cuoi :");
f=themcuoi(f);
printf(" ");// lệnh
in này căn chèn dấu cách cho xem thửng đẹp hơn
xem(f);
printf("\nSap Xep tang
:");
sapxeptang(f);
xem(f);
printf("\nSap
xep Giam :");
sapxepgiam(f);
xem(f);
printf("\nTim kiem x=5 =>
");
if (seach(f,5)==NULL) printf("Khong tim
thay x=5");
else
printf("Tim thay ");
printf("\nXoa
dau ");
f=xoadau(f);
xem(f);
printf("\nXoa cuoi ");
f=xoacuoi(f);
xem(f);
getch();
}
All comments [ 0 ]
Your comments