lptho42 Thành Viên chính thức
Tổng số bài gửi : 48 Join date : 30/03/2011
| Tiêu đề: Hàm InsertEnd và InsertFirst Mon Oct 10, 2011 3:59 pm | |
| Đoạn code này mình tham khao trên mạng. Mình cố gắng chuyển đổi theo giống như yêu cầu hàm InsertEnd của thầy mà không được. Mong các bạn chia suy nghĩ thêm nha! - Code:
-
// vidu.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<stdio.h> #include<iostream> #include<conio.h>
#include<string.h>
using namespace std; #define Maxlength 30 typedef int ElementType; typedef int Position; typedef struct { ElementType Element[Maxlength]; int Last; //so phan tu cua danh sach }List;
void TaoRong(List &L) { L.Last=0; }
//them vao dau sanh sach void InsertFirst(int x,List &L) { for(int i=L.Last;i>=1;i--) L.Element[i+1]=L.Element[i]; L.Element[1]=x; L.Last++; }
//them vao cuoi danh sach void InsertEnd(int x,List &L) { L.Last++; L.Element[L.Last]=x; }
//nhap va luu tru theo thu tu void Nhap(List &L) { char str[30]; cout<<"\nNhap vao mot day so nguyen :"; gets(str); for(int i=1;i<=strlen(str);i++) InsertEnd(int(str[i-1])-48,L); }
//nhap va luu tru nguoc voi thu tu nhap void NhapNguoc(List &L) { char str[30]; cout<<"\nNhap vao mot day so nguyen: "; gets(str); //ham nhap chuoi for(int i=1;i<=strlen(str);i++) InsertFirst(int(str[i-1])-48,L); }
void Xuat(List L) { for(int i=1;i<=L.Last ;i++) cout<<L.Element[i]; getch(); }
void main() { List A,B;
TaoRong(A); Nhap(A); cout<<"Danh sach vua nhap la:"; Xuat(A);
TaoRong(B); NhapNguoc(B); cout<<"Danh sach xuat nguoc la:"; Xuat(B);
getch(); }
| |
|
devil Moderator
Tổng số bài gửi : 58 Join date : 07/08/2010 Đến từ : Cà Mau
| Tiêu đề: Re: Hàm InsertEnd và InsertFirst Tue Oct 11, 2011 6:32 pm | |
| - lptho42 đã viết:
- Đoạn code này mình tham khao trên mạng. Mình cố gắng chuyển đổi theo giống như yêu cầu hàm InsertEnd của thầy mà không được. Mong các bạn chia suy nghĩ thêm nha!
- Code:
-
// vidu.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<stdio.h> #include<iostream> #include<conio.h>
#include<string.h>
using namespace std; #define Maxlength 30 typedef int ElementType; typedef int Position; typedef struct { ElementType Element[Maxlength]; int Last; //so phan tu cua danh sach }List;
void TaoRong(List &L) { L.Last=0; }
//them vao dau sanh sach void InsertFirst(int x,List &L) { for(int i=L.Last;i>=1;i--) L.Element[i+1]=L.Element[i]; L.Element[1]=x; L.Last++; }
//them vao cuoi danh sach void InsertEnd(int x,List &L) { L.Last++; L.Element[L.Last]=x; }
//nhap va luu tru theo thu tu void Nhap(List &L) { char str[30]; cout<<"\nNhap vao mot day so nguyen :"; gets(str); for(int i=1;i<=strlen(str);i++) InsertEnd(int(str[i-1])-48,L); }
//nhap va luu tru nguoc voi thu tu nhap void NhapNguoc(List &L) { char str[30]; cout<<"\nNhap vao mot day so nguyen: "; gets(str); //ham nhap chuoi for(int i=1;i<=strlen(str);i++) InsertFirst(int(str[i-1])-48,L); }
void Xuat(List L) { for(int i=1;i<=L.Last ;i++) cout<<L.Element[i]; getch(); }
void main() { List A,B;
TaoRong(A); Nhap(A); cout<<"Danh sach vua nhap la:"; Xuat(A);
TaoRong(B); NhapNguoc(B); cout<<"Danh sach xuat nguoc la:"; Xuat(B);
getch(); }
Có thể ý tưởng của bạn đúng nhưng mình xem code của bạn còn vấn đề vẫn chưa giải quyết được yêu cầu thầy đưa ra. Tại sao các bạn không đưa ra suy nghĩ về thuật toán giải quyết bài toán, khoan nói đến code. Nếu ta được thuật toán đúng nhất thì lúc này việc code sẽ dễ dàng hơn. Mình sẽ đưa ra giải thuật hàm InsertEnd: Đầu tiên khi đọc hàm này các bạn phải liên tưởng đến hàm insert của Queue(Hàng đợi) Quy tắc của Queue là thêm luôn luôn vào sau. Mỗi lần thêm vào là Q.rear tăng lên, và thêm nội dung X vào vị trí Q.rear-1. Lúc này tại sao các bạn không thay thế Q.rear = L.last.Như vậy bài toán đã ra đáp án. Các bạn học môn này là phải suy nghĩ, liên tưởng 1 chút, thầy cho bài toàn là nằm trong phần mình học. Nếu mình giải bài cho các bạn khi vô thi thầy cho các bạn bài hơi khác như bài này thì lúc này các bạn lúng túng không biết làm gì hết. còn các bạn tự làm thì khi tôi hoặc bạn khác sửa,góp ý bài các bạn sẽ nhớ lâu hơn và có tư duy hơn. Đây chỉ là ý kiến của tôi, nếu tôi có nói sai thì xin lỗi các bạn trước. Chúc các bạn thành công. | |
|
Admin Administrotor
Tổng số bài gửi : 877 Join date : 24/07/2010
| Tiêu đề: Re: Hàm InsertEnd và InsertFirst Wed Oct 12, 2011 6:33 am | |
| | |
|
Sponsored content
| Tiêu đề: Re: Hàm InsertEnd và InsertFirst | |
| |
|