
1.1: tạo và xem danh sách FIFO gồm các phân số. thực hiện thao tác sắp xếp, tìm kiếm, thêm đầu, thêm cuối, thêm phân số x sao cho không làm thay đổi thứ tự sắp xếp.
Thursday, November 27, 2014
// cac thao tac tren danh sach FIFO gom cac phan so;
#include <stdio.h>
#include <conio.h>
typedef struct ps
{
int
tu,mau;
ps *link;
};
void swap(int *a,int *b) // ham doi cho a va b
{
int tg;
tg=*a;
*a=*b;
*b=tg;
}
void xemfifo(ps *f)
{
ps *p;
p=f;
while
(p!=NULL)
{
printf("\n %d/%d",p->tu,p->mau);
p=p->link;
}
}
ps
*nhap(ps *f, ps *l, int n)
{
ps *p;
int i;
nhap: for
(i=0;i<n;i++)
{
p=new(ps);
printf("\nNhap
tu va mau : ");
scanf("%d%d",&p->tu,&p->mau);
if
(p->mau==0) {
printf("\nNhap
sai mau phai khac 0");
f=NULL;
goto nhap;
}
p->link=NULL;
if
(f==NULL) { f=p; l=p;}
else
{ l->link=p; l=p;}
}
return f;
}
void sapxep(ps *f)
{
ps *p1,*p2;
p1=f;
while
(p1!=NULL)
{
p2=p1->link;
while
(p2!=NULL)
{
if
((((float)p1->tu/p1->mau))>(((float)p2->tu/p2->mau)))
{
//doicho
swap(&p1->tu,&p2->tu);
swap(&p1->mau,&p2->mau);
}
p2=p2->link;
}
p1=p1->link;
}
}
ps
*timkiem(ps *f)
{
ps *p,*x;
x=new(ps);
p=f;
printf("\nNhap
phan so can tim kiem tu/mau : ");
scanf("%d%d",&x->tu,&x->mau);
while
(p!=NULL) if (p->tu==x->tu &&
p->mau==x->mau) return p;
else p=p->link;
return p;
}
ps
*themdau(ps *f)
{
ps *p;
p=new(ps);
printf("\nNhap
tu mau : ");
scanf("%d%d",&p->tu,&p->mau);
p->link=f;
return p;
}
ps
*themcuoi(ps *f)
{
ps *p,*x;
p=f;
x=new(ps);
printf("\nNhap
tu mau : ");
scanf("%d%d",&x->tu,&x->mau);
x->link=NULL;
while
(p->link!=NULL) p=p->link;
if
(f==NULL) return x; else
{
p->link=x;
return
f;
}
}
// them x vao khong thay doi thu tu sap xep.
ps *themx(ps
*f)
{
ps *p,*x;
x=new(ps);
printf("\nNhap
tu mau : ");
scanf("%d%d",&x->tu,&x->mau);
if
(f==NULL) {
x->link=NULL;
return
x;
}
if ((((float)f->tu/f->mau))>(((float)x->tu/x->mau))) {
x->link=f;
return
x;
}
p=f;
while (((float)(p->link)->tu/(p->link)->mau)<(((float)x->tu/x->mau)))
p=p->link;
x->link=p->link;
p->link=x;
return f;
}
void main()
{
int n;
ps *f=NULL,*l=NULL;
printf("\n1.Nhap
so phan tu : ");
scanf("%d",&n);
f=nhap(f,l,n);
xemfifo(f);
printf("\n2.Them
1 phan tu vao dau :");
f=themdau(f);
xemfifo(f);
printf("\n3.Them
1 phan tu vao cuoi :");
f=themcuoi(f);
xemfifo(f);
printf("\n4.
Sap xep :");
sapxep(f);
xemfifo(f);
printf("\n5.
Them 1 so vao khong thay doi thu tu sap xep
:");
f=themx(f);
xemfifo(f);
printf("\n6.
Tim kiem :");
if
(timkiem(f)!=NULL) printf("\n Tim thay co trong danh sach");
else printf("\n Khong tim thay trong danh sach");
getch();
}

- Bài 1. Tạo danh sách fifo gồm các số thực. sắp xếp chúng theo thứ tự không giảm. Nhập số thực x từ bàn phím, kiểm tra xem x có xuất hiện trong danh sách không
- Thao tác cơ bản về danh sách LIFO FIFO.
- hàm xem danh sách liên kết đơn.
- 1.2 tạo danh sách lifo gầm các số thực. xem danh sách, và đếm số các số thực trong dánh sách lớn hơn 3.14.
- Bài 5. Tạo danh sách fifo gồm các số nguyên. sắp xếp chúng theo thứ tự tăng dần . Thêm số nguyên x vào đầu. xóa phần tử đầu danh sách.
- Bài 4. Tạo danh sách fifo gồm các số nguyên. sắp xếp chúng theo thứ tự không tăng . Nhập số nguyên x từ bàn phím, kiểm tra xem x có xuất hiện trong danh sách không
- Bài 3. Tạo danh sách fifo gồm các số nguyên. sắp xếp chúng theo thứ tự không giảm . Nhập số nguyên x từ bàn phím, kiểm tra xem x có xuất hiện trong danh sách không
- Bài 2. Tạo danh sách fifo gồm các số thực. sắp xếp chúng theo thứ tự không tăng . Nhập số thực x từ bàn phím, kiểm tra xem x có xuất hiện trong danh sách không
All comments [ 0 ]
Your comments