#include <stdio.h>
#include <conio.h>
#include <malloc.h>
typedef struct Node{
int heso;
int somu;
Node* Next;
};
typedef Node* DaThuc;
void ktRong(DaThuc &dt){
dt = (Node*)malloc(sizeof(Node));
dt->Next = NULL;
}
void them(int hs,int sm, DaThuc &dt){
if (hs==0)
return;
DaThuc p = dt;
while(p->Next!=NULL){
p=p->Next;
}
Node* t = (Node*)malloc(sizeof(Node));
t->heso = hs;
t->somu = sm;
t->Next = NULL;
p->Next = t;
}
void congDT(DaThuc dt1,DaThuc dt2, DaThuc &dt3){
DaThuc p = dt1;
DaThuc q = dt2;
while(p->Next!=NULL && q->Next!=NULL){
if (p->Next->somu > q->Next->somu){
them(p->Next->heso,p->Next->somu,dt3);
p=p->Next;
}
else if (p->Next->somu < q->Next->somu){
them(q->Next->heso,q->Next->somu,dt3);
q=q->Next;
}
else{
them(p->Next->heso + q->Next->heso,p->Next->somu,dt3);
p=p->Next;
q=q->Next;
}
}
while(p->Next != NULL){
them(p->Next->heso,p->Next->somu,dt3);
p=p->Next;
}
while(q->Next != NULL){
them(q->Next->heso,q->Next->somu,dt3);
q=q->Next;
}
}
void inDT(DaThuc dt){
DaThuc p = dt->Next;
while(p!=NULL){
if (p->somu==1)
printf("%dx",p->heso);
else if (p->somu==0)
printf("%d",p->heso);
else
printf("%dx^%d",p->heso,p->somu);
p=p->Next;
if (p!=NULL && p->heso>=0)
printf("+");
}
}
int main(){
DaThuc dt1,dt2;
ktRong(dt1);
ktRong(dt2);
them(4,6,dt1);
them(3,5,dt1);
them(-3,1,dt1);
them(2,0,dt2);
them(6,-4,dt2);
printf("Da thuc 1: ");
inDT(dt1);
printf("\nDa thuc 2: ");
inDT(dt2);
DaThuc dt3;
ktRong(dt3);
congDT(dt1,dt2,dt3);
printf("\nDa thuc 3: ");
inDT(dt3);
return 0;
}
Home
»
Cấu trúc dữ liệu
»
Cấu trúc dữ liệu và giải thuật
» Cấu trúc dữ liệu đa thức bằng danh sách liên kết
Thứ Tư, 3 tháng 9, 2014
Related Posts
Cấu trúc dữ liệu Đa thức bằng mảng
#include <stdio.h>#include <conio.h>#include <malloc.h>#define Max 9typedef int Da...Read more
Cấu trúc dữ liệu Cây Tổng Quát
#include <stdio.h>#include <conio.h>#define MaxLength 10#define NIL -1typedef int Node;t...Read more
Các bài tập chuyên đề chia để trị cơ bản
Bài liên quan:Cách trình bày mô tả một thuật toán chia để trị Trình bày cách tính độ phứ...Read more
Cellular Automata : Game Of Life
A cellular automaton (pl. cellular automata, abbrev. CA) is a discrete model studied in computabilit...Read more
Cài đặt cây tìm kiếm nhị phân Nhân viên - Dạng 2
Mong bạn like hoặc +1 để giúp đỡ blog có thể duy trì hoạt động lâu dàiĐây là một bài nâng cao về cây...Read more
Cài đặt cây tìm kiếm nhị phân Nhân viên - Dạng 1
Mong bạn like hoặc +1 để giúp đỡ blog có thể duy trì hoạt động lâu dàiBài liên quan: Cài đặt và...Read more
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
* lưu ý: tính năng này yêu cầu bạn phải có kết nối Internet khi sử dụng phần mềm. Bạn vui lòng thực hiện các bước sau để đăng ký dùng miễn p...
-
Công cụ Đăng Ký Bản Quyền Sử Dụng Kế Toán Smart Pro ( 2.0 - 2.5 - 3.0) Video Hướng Dẫn Đăng Ký Bản Quyền Kế Toán Smart Pro (2.0 - 2.5 - 3.0)...
-
HTsoft POS .NET là phần mềm quản lý Kho-Bán hàng và Chăm sóc khách hàng chuyên nghiệp, áp dụng tốt cho nhiều lĩnh vực kinh doanh khác nhau ...
-
Đề bài: nhập 2 số nguyên dương a,b. Tính ước số chung lớn nhất và bội chung nhỏ nhất của a,b. Bài giải: Cách 1: #include <stdio.h> int...
-
Clover 3.0.386 - Tạo Tabs File Explorer cho Windows 8.1 http://www.softpedia.com/progDownload/Clover-EJIE-Download-220301.html
-
Phần mềm quản lý bán hàng TTV Sales là giải pháp giúp các doanh nghiệp quản lý các chuỗi cửa hàng, sản phẩm, nhân viên một cách có hệ thống ...
-
#include <conio.h> #include <stdio.h> #define max 100 /*Hàm nhập ma trận hệ số*/ void NhapMaTran ( float A [ max ][ max ], in...
-
Đề bài: nhập vào tử số, mẫu số (khác 0) của một phân số. Hãy rút gọn phân số này. Chú ý chọn dạng xuất thích hợp trong trường hợp mẫu số bằn...
-
HDMI hiện là cổng giao tiếp phổ biến nhất trên TV. Nhưng nếu muốn kết nối máy tính với TV (hay màn hình mới), bạn sẽ có nhiều tùy chọn hơn n...
-
Đề bài: Trong kỳ thi tuyển, mỗi thí sinh sẽ trúng tuyển nếu điểm tổng kết của thí sinh đó lớn hơn hoặc bằng điểm chuẩn và không có môn nào đ...
0 nhận xét:
Đăng nhận xét
Click to see the code!
To insert emoticon you must added at least one space before the code.