PDA

View Full Version : Mong các cao thủ giúp chuyển sang Visual Basic



online123
02-12-2009, 21:22
Mình có một đề tài là:
Bài toán xây dựng một danh sách(list) liên kết sử dụng phương pháp hai con trỏ liên tiếp để duyệt danh sách lần đầu cho đến hết đồng thời bẻ ngược con trỏ, sau đó in dần từng phần tử và bẻ ngược lại các con trỏ để phục hồi danh sách.

Mình định viết bằng VB mà thấy khó quá, có ai rảnh giúp mình với :
1- nhập vào 1 danh sách
2- in danh sách đó ra
3- đảo ngược danh sách
4- in lại danh sách đã đảo ngược

Chân thành cảm ơn các cao thủ !!!

/************************
*..Danh sach lien ket..*
************************/
#include <iostream.h>
#include <conio.h>

typedef int infor;

struct element {
infor value;
element *next;
};

typedef element *List;

List F;
infor x;

/*****o0o*****/

void KhoiTaoDS(List &F) {
F=NULL;
}

/*****o0o*****/

void InDS(List F) {
List P;
P=F;
cout<<"Danh sach F:"<<endl;
while(P!=NULL)
{
cout<<P->value<<" ";
P=P->next;
}
cout<<"\n";
}

/*****o0o*****/

void NhapDS(List &F) {
List P;
do {
P = new element;
cout << "Nhap 1 so (-1 de dung):" << endl;
cin >> x;
if (x != -1) {
P->value = x;
P->next = F;
F = P;
}
} while (x != -1);
}

void DaoNguocDS(List &F) {
List P, Q, K;
P = F;
Q = F;
K = P->next;
P->next = NULL;
Q->next = NULL;
while (K->next != NULL) {
P = K;
K = K->next;
P->next = Q;
Q = P;
}
if (K->next == NULL) {
F = K;
K->next = P;
}
}
//////////////////////////////////////////
///////////Chuong trinh chinh/////////////
//////////////////////////////////////////
void main() {
KhoiTaoDS(F);
int cv;
do {
cout<<"\n ---DANH SACH LIEN KET---"<<endl;
cout<<" ----------o0o-----------"<<endl;
cout<<" 1.Nhap danh sach"<<endl;
cout<<" 2.Liet ke danh sach"<<endl;
cout<<" 3.Dao nguoc danh sach"<<endl;
cout<<" 0. Thoat!"<<endl<<endl;
cout<<"->Chon cong viec: "; cin>>cv;

switch(cv) {
case 1:
NhapDS(F);
break;
case 2:
InDS(F);
break;
case 3:
DaoNguocDS(F);
InDS(F);
break;
case 0: break;
};
} while(cv!=0);
}