Đáp án giải thuật |Đại học Xây Dựng Hà Nội

#include <sstream> #include <iostream> using namespace std;const int Default_Length = 100;//sức chứa mặc định của mảng typedef struct{int *DataArray;//Con trỏ mảng dữ liệu int top;//Số phần tử thực có trong stack  int Max_Length;//số phần tử tối   a của ngăn xếpTài liệu giúp bạn tham khảo,ôn tập và đạt kết quả cao.Mời bạn đón xem

lOMoARcPSD|45222017
#include <sstream>
#include <iostream>
using namespace std;
const int Default_Length = 100;//sc cha mc định ca mng
typedef struct
{
int *DataArray;//Con tr mng d liu
int top;//S phn t thc có trong stack
int Max_Length;//s phn t ti a ca ngăn xếp
void init_Stack(){
top=0;
Max_Length = Default_Length;
DataArray = new int[Max_Length];
}
bool isEmpty(){
return(top<1);
}
bool isFull(){
return(top>=Max_Length);
}
int peek(){
if(top>=1&&top<=Max_Length)
{
return DataArray[top-1];
}
cout<<"Ngan xep rong"<<endl;
return 0;
}
int Count(){
return top;
}
bool DecreaseSize(){
int newsize=Max_Length/2;
//Cp phát ng mng mi
int *reSize=new int[newsize];
if(reSize==NULL) return false;
//Sao chép phn t for(int
i=0;i<top;i++)
{
reSize[i]=DataArray[i];
}
//Xóa mảng cũ
delete[] DataArray;
lOMoARcPSD|45222017
DataArray=reSize;
Max_Length=newsize;
return true;
}
bool IncreaseSize(){
int newsize=Max_Length*2;
//Cp phát ng mng mi
int *reSize=new int[newsize];
if(reSize==NULL) return false;
//Sao chép phn t for(int
i=0;i<top;i++)
{
reSize[i]=DataArray[i];
}
//Xóa mảng cũ
delete[] DataArray;
DataArray=reSize;
Max_Length=newsize;
return true;
}
bool Push(int x){
if(top==Max_Length)
{
bool OK;
OK=IncreaseSize();
if(!OK) return false;
}
DataArray[top++]=x;
return true;
}
int Pop(){
if(top>=1&&top<=Max_Length)
{
int result = DataArray[--top];
DataArray[top]=0;
if((top)==(Max_Length/2)) DecreaseSize();//Nếu s phn t thc
//bng hoặc ít hơn một na
// ược cp phát thì thu hp mng
return result;
}
cout<<"Danh sach rong!"<<endl;
return 0;
lOMoARcPSD|45222017
}
}Stack_Array; void ChuyenCoSo(Stack_Array
&s,int GT,int CS){
int sodu;
while(GT!=0)
{
sodu=GT%CS;
s.Push(sodu);
GT=GT/CS;
}
}
string XuatKQ(Stack_Array s){
string token = ""; int
element; while
(s.Count()!=0)
{
element = s.Pop();
if(element<10)token=token+to_string(element);
else
{
switch(element)
{
case 10:
token=token+"A";
break;
case 11:
token=token+"B";
break;
case 12:
token=token+"C";
break;
case 13:
token=token+"D";
break;
case 14:
token=token+"E";
break;
case 15:
token=token+"F";
break;
}
}
}
return token;
lOMoARcPSD|45222017
}
int main()
{
Stack_Array stack; stack.init_Stack();
ChuyenCoSo(stack,65430,16);
cout<<"So 65430 chuyen sang he thap luc phan la:
"<<XuatKQ(stack)<<endl;; return 0;
}
| 1/4

Preview text:

lOMoARcPSD| 45222017 #include #include using namespace std;
const int Default_Length = 100;//sức chứa mặc định của mảng typedef struct {
int *DataArray;//Con trỏ mảng dữ liệu
int top;//Số phần tử thực có trong stack
int Max_Length;//số phần tử tối a của ngăn xếp void init_Stack(){ top=0; Max_Length = Default_Length;
DataArray = new int[Max_Length]; } bool isEmpty(){ return(top<1); } bool isFull(){ return(top>=Max_Length); } int peek(){
if(top>=1&&top<=Max_Length) { return DataArray[top-1]; }
cout<<"Ngan xep rong"<return 0; } int Count(){ return top; } bool DecreaseSize(){ int newsize=Max_Length/2;
//Cấp phát ộng mảng mới int *reSize=new int[newsize];
if(reSize==NULL) return false;
//Sao chép phần tử for(int i=0;i{ reSize[i]=DataArray[i]; } //Xóa mảng cũ delete[] DataArray; lOMoARcPSD| 45222017 DataArray=reSize; Max_Length=newsize; return true; } bool IncreaseSize(){ int newsize=Max_Length*2;
//Cấp phát ộng mảng mới int *reSize=new int[newsize];
if(reSize==NULL) return false;
//Sao chép phần tử for(int i=0;i{ reSize[i]=DataArray[i]; } //Xóa mảng cũ delete[] DataArray; DataArray=reSize; Max_Length=newsize; return true; } bool Push(int x){ if(top==Max_Length) { bool OK; OK=IncreaseSize(); if(!OK) return false; } DataArray[top++]=x; return true; } int Pop(){
if(top>=1&&top<=Max_Length) {
int result = DataArray[--top]; DataArray[top]=0;
if((top)==(Max_Length/2)) DecreaseSize();//Nếu số phần tử thực có
//bằng hoặc ít hơn một nửa
// ược cấp phát thì thu hẹp mảng return result; }
cout<<"Danh sach rong!"<return 0; lOMoARcPSD| 45222017 }
}Stack_Array; void ChuyenCoSo(Stack_Array &s,int GT,int CS){ int sodu; while(GT!=0) { sodu=GT%CS; s.Push(sodu); GT=GT/CS; } } string XuatKQ(Stack_Array s){ string token = ""; int element; while (s.Count()!=0) { element = s.Pop();
if(element<10)token=token+to_string(element); else { switch(element) { case 10: token=token+"A"; break; case 11: token=token+"B"; break; case 12: token=token+"C"; break; case 13: token=token+"D"; break; case 14: token=token+"E"; break; case 15: token=token+"F"; break; } } } return token; lOMoARcPSD| 45222017 } int main() {
Stack_Array stack; stack.init_Stack(); ChuyenCoSo(stack,65430,16);
cout<<"So 65430 chuyen sang he thap luc phan la: "<}