Đá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
Môn: công nghệ thông tin(HUCE)
Trường: Đại học Xây Dựng Hà Nội
Thông tin:
Tác giả:
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: "<}