Đăng kýIndexCalendarTrợ giúpTìm kiếmThành viênBảng tin CTIMNhómĐăng Nhập
Similar topics
Top posters
Luv
 
Fenix
 
Susu
 
Jeen
 
YoungLeeMedia.com
 
David_308
 
Mr.Spider
 
LuckStar
 
Lucas
 
Heroes
 
—»†• LAST POSTERS •†«——»†• POSTER •†«——»†• TIME •†«—
Không cảm xúc Mon Jul 15, 2013 1:53 pm
Giới thiệu Website Mon Jul 01, 2013 8:23 am
Test post game Sat Aug 18, 2012 3:08 pm
Code music html nghe nhạc hay cho website forum Fri Dec 09, 2011 2:13 pm
Code Tạo Trang Nhạc Miễn Phí Hay Cực Kỳ.. (Ai Cũng Làm Được) Sun Sep 11, 2011 1:10 pm
.cực hot...Giảm giá ưu đãi 10% cho 100 chiếc điện thoại người già iNo F12 (từ 19/8-->27/8/2011)..nhanh chân kẻo hết Sun Aug 21, 2011 9:49 am
Bao da Marwave cao cấp "C.E.O Hybrid" & "MicroShell FOLIO" dành cho IPad 2 Tue Aug 16, 2011 4:30 pm
Điện thoại người già F8 và F12 rất thích hợp cho người già (bố mẹ, ông bà) Thu Aug 11, 2011 4:31 pm
Borofone bao da cao cấp cho iPhone 4 và iPad 2 Tue Aug 09, 2011 5:55 pm
Điện thoại người già F12 (Singapore) - Sự lựa chọn mới của người cao tuổi Việt Nam? Sat Aug 06, 2011 9:19 am


 

 Hàng đợi (QUEUE) dùng cấu trúc DSLK đơn demo trên dãy số nguyên

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giả Thông điệp
Luv

†•[¥]-ô-[€]-ố-[Ï]•†


avatar

Tổng số bài gửi : 981
Points : 180073
Reputation : 110029
Join date : 29/09/2009
Age : 27
Đến từ : ---- Quận 4 ----

Bài gửiTiêu đề: Hàng đợi (QUEUE) dùng cấu trúc DSLK đơn demo trên dãy số nguyên   Thu Dec 10, 2009 6:19 am

Code:
/*
CHUONG TRINH DEMO HANG DOI DUNG CAU TRUC DSLK DON
THAO TAC TREN DAY SO NGUYEN
*/

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>
struct Queue
{
   int  info;
   struct Queue *next;
};
typedef struct Queue *QUEUE;

//Khai Bao Prototype
void InitializeQ (QUEUE *pfirst, QUEUE *plast);
int  EmptyQ (QUEUE *pfirst);
QUEUE GetQueue();
void PushQ (QUEUE *pfirst, QUEUE *plast, int x);
int  PopQ (QUEUE *pfirst, QUEUE *plast);
void TopQ (QUEUE *pfirst);
//==============================
void main()
{
   QUEUE pfirst, plast;
   int x, y, vt, chon, n, i;
   char ch;
   clrscr();
   InitializeQ (&pfirst, &plast);
   do
   {
      clrscr();
      printf("\n\n\tCHUONG TRINH DEMO HANG DOI THAO TAC TREN DAY NGUYEN !");
      printf("\n\t1  : Khoi Tao Hang Doi !");
      printf("\n\t2  : Kiem Tra Hang Doi Rong !");
      printf("\n\t3  : Tao Hang Doi !");
      printf("\n\t4  : Xuat Va Huy Hang Hoi  !");
      printf("\n\t5  : Them 1 Phan Tu Vao Hang Doi !");
      printf("\n\t6  : Xoa 1 PTu Ra Khoi hang Doi !");
      printf("\n\t7  : Truy Xuat Noi Dung O Dinh Hang Doi !");
      printf("\n\t0  : THOAT KHOI CHUONG TRINH !");
      printf("\n\tBan Chon Chuc Nang Nao ? ");
      scanf ("%d", &chon);
      switch (chon)
      {
         case 1:
         {
            InitializeQ (&pfirst, &plast);
            printf("\n\tHang Doi Da Duoc Khoi Tao !");
            getch();
            break;
         }
         case 2:
         {
            printf("\n\tKiem Tra Hang Doi Rong !");
            if (EmptyQ (&pfirst))
               printf("\n\tHang Doi Rong !");
            else
               printf("\n\tHang Doi Khong Rong !");
            getch();
            break;
         }
         case 3:
         {
            printf("\n\tTao Hang Doi !");
            InitializeQ (&pfirst, &plast);
            printf("\n\tNhap SPTu Trong Hang Doi !");
            scanf ("%d", &n);
            printf("\n\tTao Hang Doi !");
            for (i = 1; i <= n; i++)
            {
               printf("\t\tNhap PTu Thu %d  :  ", i);
               scanf("%d", &x);
               //Neu La Cau Truc : x = Nhap1PTu();
               PushQ(&pfirst, &plast, x);
            }
            getch();
            break;
         }
         case 4:
         {
            printf("\n\tXuat Va Huy Hang Doi !");
            if (EmptyQ (&pfirst))
               printf("\n\tHang Doi Rong  !");
            else
            {
               printf("\n\tNoi Dung HDoi Vua Nhap !");
               while(EmptyQ (&pfirst) == 0)
               {
                  TopQ (&pfirst);
                  y = PopQ (&pfirst, &plast);
               }
            }
            getch();
            break;
         }
         case 5:
         {
            printf("\n\tThem 1 PTu Vao Hang Doi !");
            printf("\n\tNhap Noi Dung X Can Them :  ");
            scanf ("%d", &x);
            PushQ(&pfirst, &plast, x);
            getch();
            break;
         }
         case 6:
         {
            printf("\n\tXoa PTu Dinh !");
            y = PopQ (&pfirst, &plast);
            getch();
            break;
         }
         case 7:
         {
            printf("\n\tTruy Xuat Noi Dung PTu Dinh !");
            TopQ (&pfirst);
            getch();
            break;
         }
      }//KT Switch
   }while (chon > 0);
   getch();
}//KThuc Ham Main
//==============================
//Cai Dat Cac Prototype
//======================================
void InitializeQ (QUEUE *pfirst, QUEUE *plast)
{
   *pfirst = *plast = NULL;
}
//========================================
int  EmptyQ (QUEUE *pfirst)
{
   if (*pfirst == NULL)
      return 1; //Rong
   return 0; //Khong Rong
}
//========================================
QUEUE Getnode()//Cap Phat Vung Nho
{
   QUEUE p;
   p = (QUEUE) malloc (sizeof (struct Queue));
   p -> next = NULL;
   return p;
}
//========================================
int  PopQ (QUEUE *pfirst, QUEUE *plast)
{
   QUEUE p;
   int x;
   if (EmptyQ(pfirst))
      printf("\n\tDS Rong, Khong Xoa Duoc !");
   else
   {
      p = *pfirst;
      x = p -> info;
      if (p -> next == NULL) //DS Co 1 Phan Tu
         *pfirst = *plast = NULL;
      else
         *pfirst = p -> next;
      return x;
   }
}
//========================================
void PushQ (QUEUE *pfirst, QUEUE *plast, int x)
{
   QUEUE p;
   p = Getnode();
   p -> info = x;
   p -> next = NULL;
   if (EmptyQ (pfirst))
   {
      *pfirst = p;
      *plast = *pfirst;
   }
   else
   {
      (*plast) -> next = p;
      *plast = p;
   }
}
//========================================
void TopQ (QUEUE *pfirst)
{
   if (EmptyQ (pfirst))
      printf("\n\tHang Doi Rong !");
   else
   {
      printf("%5d", (*pfirst) -> info);
      //Neu La Cau Truc In1PTu
   }

}
Về Đầu Trang Go down
Xem lý lịch thành viên
 

Hàng đợi (QUEUE) dùng cấu trúc DSLK đơn demo trên dãy số nguyên

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum: Bạn không có quyền trả lời bài viết
—»†•_Welcome to Forum I.T_•†«— :: —»†• HỌC HÀNH :: BÀI TẬP -
Free forum | © phpBB | Free forum support | Report an abuse | Create a free blog