Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: cài đặt đa thức bằng danh sách liên kết đơn

  1. #1
    Ngày gia nhập
    05 2008
    Bài viết
    1

    Mặc định cài đặt đa thức bằng danh sách liên kết đơn

    giúp mình bài tập này với
    cài đặt đa thức bằng danh sách liên kết đơn
    mình sắp phải nộp bài tập này mà chưa nghĩ ra cách làm.mong được mọi người giúp đỡ.thanks nhiều

  2. #2
    Ngày gia nhập
    05 2008
    Bài viết
    1

    Bạn tạo một cấu trúc gồm:
    truct node
    {int somu, heso;
    node *next;
    }
    Tiếp theo tạo 2 con trỏ kiểu node:first,last để trỏ vào đầu và cuối danh sách.

  3. #3
    Ngày gia nhập
    12 2010
    Bài viết
    3

    PHP Code:
     thuật toán này bạn
    #include"stdafx.h"
    #include<conio.h>
    #include<Windows.h>
    #include<string.h>
    #include<malloc.h>
    #include<process.h>

    typedef struct  Data_type
    {
        
    int He_so;
        
    int So_mu;
    }
    Data;

    typedef struct Tagnode
    {
        
    Data Info;
        
    struct Tagnode *Next;
    }*
    Node;

    typedef struct Taglist
    {
        
    Node Head,Tail;
    }List;

    Node Getnode(Data x)
    {
        
    Node p;
        
    p=(Node)malloc(sizeof(Node));
        if(
    p==0)
        {
            
    printf("\nKhong du bo nho cap phat");
            exit(
    1);
        }
        
    p->Info=x;
        
    p->Next=0;
        return 
    p;
    }

    void Creat_list(List &l)
    {
        
    l.Head=l.Tail=0;
    }

    void Insert_node(List &l,Node p)
    {
        if(
    p==0)
        {
            
    printf("\nDu lieu nhap vao rong\n");
            return;
        }
        if(
    l.Head==0)
        {
            
    l.Head=p;
            
    l.Tail=l.Head;
        }
        else
        {
            
    l.Tail->Next=p;
            
    l.Tail=p;
        }
    }

    void Show(List &l)
    {
        
    Node p;
        if(
    l.Head==0)
        {
            
    printf("\n0");
            return;
        }
        else
        {
            
    p=l.Head;
            while(
    p!=0)
            {
                if(
    p==l.Tail)
                {
                    if(
    p->Info.So_mu==0)
                        
    printf("%d",p->Info.He_so);
                    else
                    
    printf("%d.X^%d",p->Info.He_so,p->Info.So_mu);
                }
                else
                {
                    if(
    p->Info.So_mu==0)
                        
    printf("%d",p->Info.He_so);
                    else
                    
    printf("%d X^%d + ",p->Info.He_so,p->Info.So_mu);
                }
                
    p=p->Next;
            }
        }
    }

    void Print_list(List &l,List &l1,List &l2)
    {
        
    fflush(stdin);
        
    system("cls");
        
    printf("\nThuc hien phep tinh:\n\nDa thuc 1:\t");
        
    Show(l1);
        
    printf("\n+\nDa thuc 2:\t");
        
    Show(l2);
        
    printf("\n__________________________________\nKet qua: \t");
        
    Show(l);
    }

    void Nhap_da_thuc(List *lint i)
    {
        
    Data x;
        
    Node p;
        do
        {
            
    system("cls");
            
    printf("\nNhap cho da thuc %d:",i);
            
    printf("\nNhap he so:\t");
            
    scanf_s("%d",&x.He_so);
            
    printf("\nNhap so mu:\t");
            
    scanf_s("%d",&x.So_mu);
            
    p=Getnode(x);
            
    Insert_node(*l,p);
            
    printf("\nNhap cho toi khi he so va so mu bang 0. se thoat ham nhap....");
        }
        while((
    x.He_so!=0) || (x.So_mu!=0));
    }

    int Dem_nut(List &l)
    {
        
    Node p;
        
    int i=0;
        
    p=l.Head;
        while(
    p!=0)
        {
            
    i++;
            
    p=p->Next;
        }
        return 
    i;
    }

    void Cong_da_thuc(List &l,List &l1,List &l2)
    {
        
    Data x;
        
    Node p,q,k;
        if(
    l1.Head==0)
        {
            if(
    l2.Head==0);
            else
            {
                
    l.Head=l2.Head;
                
    l.Tail=l2.Tail;
            }
        }
        else
        {
            if(
    l2.Head==0)
            {
                
    l.Head=l1.Head;
                
    l.Tail=l1.Tail;
            }
            else
            {
                if(
    Dem_nut(l1)>Dem_nut(l2))
                {
                    
    p=l1.Head;
                    while(
    p!=0)
                    {
                        
    q=l2.Head;
                        while(
    q!=0)
                        {
                            if(
    p->Info.So_mu==q->Info.So_mu)
                            {
                                    
    x.He_so=(p->Info.He_so+q->Info.He_so);
                                    
    x.So_mu=p->Info.So_mu;
                                    break;
                            }
                            
    q=q->Next;
                        }
                        if(
    q!=0)
                        {
                            
    k=Getnode(x);
                            
    Insert_node(l,k);
                        }
                        else
                        {
                            
    x.He_so=p->Info.He_so;
                            
    x.So_mu=p->Info.So_mu;
                            
    k=Getnode(x);
                            
    Insert_node(l,k);
                        }
                        
    p=p->Next;
                    }
                }
                else
                {
                    
    p=l2.Head;
                    while(
    p!=0)
                    {
                        
    q=l1.Head;
                        while(
    q!=0)
                        {
                            if(
    p->Info.So_mu==q->Info.So_mu)
                            {
                                    
    x.He_so=(p->Info.He_so+q->Info.He_so);
                                    
    x.So_mu=p->Info.So_mu;
                                    break;
                            }
                            
    q=q->Next;
                        }
                        if(
    q!=0)
                        {
                            
    k=Getnode(x);
                            
    Insert_node(l,k);
                        }
                        else
                        {
                            
    x.He_so=p->Info.He_so;
                            
    x.So_mu=p->Info.So_mu;
                            
    k=Getnode(x);
                            
    Insert_node(l,k);
                        }
                        
    p=p->Next;
                    }
                }
            }
        }    
    }

    void _tmain()
    {
        List 
    l,l1,l2;
        
    Creat_list(l1);
        
    Nhap_da_thuc(&l1,1);
        
    Creat_list(l2);
        
    Nhap_da_thuc(&l2,2);
        
    Creat_list(l);
        
    Cong_da_thuc(l,l1,l2);
        
    Print_list(l,l1,l2);
        
    _getch();

    nothing impossible

Các đề tài tương tự

  1. Hướng dẫn Biểu diễn thích hợp bằng danh sách liên kết đơn hoặc danh sách liên kết kép
    Gửi bởi maitrung trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 04-08-2012, 08:01 PM
  2. Cấu trúc dữ liệu Cách tạo danh sách liên kết mới từ danh sách liên kết đã cho như thế nào?
    Gửi bởi giacmo1612 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 30-11-2011, 04:43 PM
  3. Nhập và xuất danh sách liên kết lồng danh sách liên kết?
    Gửi bởi nvluong_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-04-2011, 11:30 AM
  4. Lập trình C Danh sách liên kết - Xử lý danh sách liên kết trong lập trình C
    Gửi bởi phucduan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 08-11-2010, 10:25 PM
  5. Danh sách liên kết, code nhập danh sách sinh viên có lỗi làm sao sửa?
    Gửi bởi acmilan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-04-2009, 08:24 PM

Quyền hạn của bạn

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