Hiển thị kết quả từ 1 đến 4 / 4
  1. #1
    Tham gia
    07-10-2009
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts

    giúp em về tạo Queue bằng con trỏ , Plsssss

    Các bro ơi giúp em code tạo Queue bằng con trỏ rồi sau đó áp dụng tính tổng 2 đa thức với , hic sắp phải nộp bài tập rồi mà chưa bít gì
    Quote Quote

  2. #2
    Tham gia
    05-03-2011
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts
    Cho bạn code hàng đợi bằng con trỏ hay danh sách liên kết cũng được, bonus thêm cái menu hoành tráng.
    Quan trọng ở đây là hiểu cái queue nó chạy như thế nào chứ xin code về chạy chỉ giải quyết được yêu cầu của thầy giáo thôi.
    Code:
    #include<iostream>
    #include<stdio.h>
    #include<conio.h>
    using namespace std;
    
    typedef struct node
    {
        int pt;
        node *link;
    } queue;
    int taods(queue **T,int &front,int &rear)
    {
        front=rear=-1;
        (*T)=NULL;
    }
    queue *local(int n,queue *T)
    {
        queue *P;
        P=T;
        int dem=1;
        while((P!=NULL)&&(dem<n))
        {
            dem++;
            P=P->link;
        }
        return P;
    }
    void nhap(queue **T,int x,int &front,int &rear)
    {
        queue *p,*q;
        p=new queue;
        p->pt=x;
        if(*T==NULL)
        {
            p->link=(*T);
            (*T)=p;
            front=0;
            rear++;
        }
        else
        {
            q=local(rear+1,*T);
            p->link = q->link;
            q->link = p;
            rear++;
        }
    }
    void xuat(queue **T,int front,int rear)
    {
        queue *p;
        p=*T;
        while(p!=NULL &&(front<=rear))
        {
            printf("%d ",p->pt);
            front++;
            p=p->link;
        }
        printf("\n");
    
    }
    void xoa(queue **T,int &front,int &rear)
    {
        if(front>rear)
            taods(&*T,front,rear);
        else
        {
            queue *p;
            p=(*T);
            printf("\nDa xoa: %d\n",p->pt);
            (*T)=p->link;
            delete p;
            front++;
        }
    
    }
    void inmenu()
    {
        printf("----------------------------Menu---------------------\n|\n");
        printf("|m.Menu\n");
        printf("|q.Quit\n");
        printf("|1.Nhap hang doi\n");
        printf("|2.Xuat hang doi\n");
        printf("|3.Xoa 1 phan tu\n");
        printf("|4.Chen 1 phan tu\n|\n");
        printf("----------------------------Menu---------------------\n");
    }
    main()
    {
        queue *T;
        int front,rear;
        int x,so,check=0;
        char c;
        taods(&T,front,rear);
        inmenu();
        while(c!='q')
        {
            c=getch();
            switch(c)
            {
            case 'm':
                inmenu();
                break;
            case 'q':
                c='q';
                break;
            case '1':
            {
                check=1;
                int dk=1;
                char y;
                while(dk==1)
                {
                    printf("\nNhap pt: ");
                    cin>>x;
                    nhap(&T,x,front,rear);
                    printf("\nNhap tiep y/n: ");
                    cin>>y;
                    if(y=='y')
                        dk=1;
                    else
                        dk=0;
                }
            }
            break;
            case '2':
                if(check!=1)
                    printf("\nChua nhap ds, quay lai buoc 1!");
                else
                    xuat(&T,front,rear);
                break;
            case '3':
                if(check!=1)
                    printf("\nChua nhap ds, quay lai buoc 1!");
                else if(front<=rear)
                    xoa(&T,front,rear);
                else
                    printf("\nHet roi, xoa j nua. error bay gio !");
                break;
            case '4':
                if(check!=1)
                    printf("\nChua nhap ds, quay lai buoc 1!");
                else
                {
                    printf("\nChen phan tu: ");
                    scanf("%d",&so);
                    nhap(&T,so,front,rear);
                    printf("\nDa chen !\n");
                }
                break;
            default:
                break;
    
            }
        }
    }

  3. #3
    Tham gia
    22-02-2011
    Location
    quận Ninh Kiều, TPCT
    Bài viết
    27
    Like
    0
    Thanked 0 Times in 0 Posts
    cho mình hỏi?
    nếu mình không dùng các ký tự chỉ cách chọn trong menu(q,m,1,2,3), mà mình dùng các phím mũi tên hay dùng enter để continue, exit kết thức, mũi tên di chuyển lên xuống

  4. #4
    Tham gia
    05-03-2011
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình cũng chưa thử xử lý mã ASCII khi nhấn 1 phím điều khiển trả về như thế nào.
    ESC =27
    DEL =127
    BACKSPACE = 8
    ...

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •