thảo luận thương mại điện tử danh sách hàng đợi xắp xếp

28 260 0
thảo luận thương mại điện tử danh sách hàng đợi xắp xếp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

lÝ thuyết: Mảng: *khái niệm: mảng là 1 tập hợp có thứ tự gồm các phần tử cùng kiểu dữ liệu ->cấu trúc dữ liệu *mỗi phần tử được truy cập và xác định bởi tên mảng và chỉ số phần tử( số thứ tự phần tử) -> truy cập ngẫu nhiên *kiểu dữ liệu: 1 chiều, nhiều chiều *cấu trúc lưu trữ mảng: hình thức lưu trữ kế tiêp -địa chỉ các phần tử nối tiếp nhau -các phần tử sắp xếp theo hang -bộ nhớ cố định *đặc điểm -cấu trúc đơn giản , truy cập nhanh -thiếu mềm dẻo trong phép xóa, chèn DANH SÁCH: *khái niệm: danh sách là 1 tập có thứ tự gồm các phần tử cùng kiêu: - các phần tử biến động -các phần tử sắp xếp theo thứ tự trước- sau *Danh sách tuyến tinh: là quan hệ lân cận giữa các phần tử -hoặc là danh sách rỗng hoặc có dạng( a1,a2, an) -n là độ dài /kích thước của danh sách -mỗi phần tử thường là 1 bản ghi bao gồm 1 hoặc nhiều trường (field) * danh sách con: gồm các phần tử liên tiếp từ a1 đến aj của danh sách -nếu i =1 gọi là phần tử đầu (prefix) -nếu j=n gọi là phần tử cuối (postfix) 1 1 *dãy con: là 1 danh sách được tạo thành bằng cách loại 1 số phần tử từ danh sách . HÀNG ĐỢI *khái niệm: hang đợi là kiểu danh sách mà thao tác thêm phần tử được thực hiện ở 1 đầu danh sách con fthao tác lấy phần tử ra đươc thực hiện ở đầu kia của danh sách *nguyên tắc hoạt động: hoạt động theo nguyên tắc FIFO “vào trước – ra trước” *ví dụ: xếp hang đợi thanh toán ở siêu thị, soát vé ở rạp chiếu phim NGĂN XẾP *khái niệm: ngăn xếp à 1 kiểu danh sách mà thao tác thêm và bớt phần tử được thực hiện chỉ một đầu danh sách gọi là đỉnh *nguyên tắc hoạt động: theo nguyên tắc LIFO “vào trước – ra sau” *ví dụ. ngăn xếp tủ quần áo, chồng sách, hộp chứa đạn súng trường Bài 1 : Mảng 1 chieu // mang 1 chieu #include<stdio.h> #include<conio.h> void Nhapmang(int a[100],int n) // nhap mang { printf("nhap so phan tu mang la:"); scanf("%d",&n); 2 2 for(int i=0;i<n;i++) { printf("Phan tu thu %d cua mang la:", i+1); scanf("%d", &a[i]); } } void Xuatmang(int a[100], int n) // xuat mang { printf("\n Mang da nhap la"); for(int i=0;i<n;i++) printf("%d,", a[i]); } void sxnoibot(int a[100],int n) // sap ep noi bot { int i, j, x; for(int i=1;i<n; i++) for(int j=n;j>i; j ) if(a[j] < a[j-1]) { x = a[j]; a[j] = a[j-1]; a[j-1] = x; } void sx_chen( int a[max], int n) // sap xep chen { 3 3 int i,j,v; for( i=1; i<n; i++) { v=a[i]; j=i-1; while(a[j]>v&&j>=0) { a[j+1]=a[j]; j ; } a[j+1]=v; } } void sx_chon(int a[max], int n) // sap xep lua chon { int i , j , T for( int i=0; i<n-1; i++) { int min =i; for( int j= 1; j<n; j++) if (a[j] < a[min]) min =j; T = a[i]; a[i]=a[min]; a[min]=T; 4 4 } } void sxnhanh(int a[ ],int left,int right) { int i,j,x; i=left; j=right; x=a[left]; do { while(a[i]<x && i<right) i++; while(a[j]>x && j>left) j ; if(i<=j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; i++; j ; } } while(i<=j); 5 5 if(i<right) sxnhanh(a,i,right); if(j>left) sxnhanh(a,left,j); } printf ("\n day sau khi sap xep la:"); for (int i=0; i<=n; i++) printf ("%d",a[i]); } void timchanduong(int a[100], int n) // tim phan tu duong chan dau tien cua mang { int dem = 0; for(int i=0; i<=n; i++) { if(a[i]>0 && a[i]%2==0) { printf("\n phan tu can tim %d nam o vi tri thu %d ",a[i],i); dem++; } } if(dem==0) printf("\n khong co phan tu chan duong"); } 6 6 int main() // ham chinh { int a[100], n; printf("nhap vao so phan tu mang:"); scanf("%d",&n); Nhapmang(a,n); Xuatmang(a,n); sxnoibot(a,n); timchanduong(a,n); getch(); } Bài 2 : Hàm đợi // hang doi cai dat bang mang. #include<conio.h> #include<stdio.h> #include<iostream.h> #define max 100 // toi da 100 ptu typedef struct // dinh nghia kieu 7 7 { int data[max]; int head; int tail; } queue; void khoitao(queue &q) // khoi tao { q.head=0; q.tail=-1; } int ktrong(queue &q) // kiem tra rong { return (q.tail==-1); } int ktday(queue &q) // kiem tra day { return(q.tail==max-1); } void them(queue &q,int x) // thêm phan tu { if(ktday(q)) cout<<"Hang doi day! \n"; else { q.tail++; 8 8 q.data[q.tail]=x; } } void bot(queue &q) // bot phan tu { if(ktrong(q)) cout<<"Hang doi rong! \n"; else { if(q.head==q.tail) khoitao(q); else q.head=q.head+1; } } void xuat(queue &q) // xuat ra hang doi { queue p; p=q; if(ktrong(p)) cout<<"Hang doi rong! \n"; else { 9 9 while(p.head!=p.tail+1) { cout<<p.data[p.head]<<" "; p.head=p.head+1; } } } void nhap(queue &q) // nhap hang doi { int x; while(x!=-1) { cout<<"Nhap nut, -1 de ket thuc: "; cin>>x; if(x!=-1) them(q,x); } } int main() // ham chinh { queue q; int x,a,k; khoitao(q); cout<<"Nhap du lieu cho hang doi: "; 10 10 [...]...nhap(q); xuat(q); coutnext; }; } int main() // ham chinh { queue *q; int x; khoitao(q); nhap(q); xuat(q); Pop(q); 14 14 xuat(q); getch(); } NGĂN XẾP // cai dat ngan xep bang mang #include #include #include #define max 100 struct stack{ // dinh nghia kieu int a[max]; int top; }; void khoitao(stack &s) // khoi tao {... main() // ham chinh { int x,a,k; stack s; khoitao(s); printf("Nhap du lieu cho stack: \n"); nhap(s); xuat(s); printf("Lay phan tu o dinh ngan xep:\n"); bot(s); xuat(s); 17 17 getch(); } // ngan xep bang danh sach lien ket #include #include #include typedef struct node { int d; node *next; }; typedef node *stack; void ktao(stack *top) { top=NULL;} int ktrong(stack top) // kiem... if(ktrong(top)) { printf("Ngan xep rong"); } else while(p) { printf("%4d",p->d); p=p->next; } } 19 19 int main() // ham chinh { stack top; int x; int v; ktao(&top); while (x!=-1) { printf ("nhap phan tu cho danh sach, -1 de thoat:"); scanf ("%d",&x); if (x!=-1) them(&top,x); } printf("\n Hien thi stack: "); xuat(top); //printf ("\n ds sau khi thuc hien bot\n"); //bot(&top,&v); //xuat(top); getch(); } Câu . là phần tử cuối (postfix) 1 1 *dãy con: là 1 danh sách được tạo thành bằng cách loại 1 số phần tử từ danh sách . HÀNG ĐỢI *khái niệm: hang đợi là kiểu danh sách mà thao tác thêm phần tử được. thước của danh sách -mỗi phần tử thường là 1 bản ghi bao gồm 1 hoặc nhiều trường (field) * danh sách con: gồm các phần tử liên tiếp từ a1 đến aj của danh sách -nếu i =1 gọi là phần tử đầu (prefix) -nếu. thứ tự gồm các phần tử cùng kiêu: - các phần tử biến động -các phần tử sắp xếp theo thứ tự trước- sau *Danh sách tuyến tinh: là quan hệ lân cận giữa các phần tử -hoặc là danh sách rỗng hoặc có

Ngày đăng: 14/05/2015, 14:38

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan