큐 택 ...
string헤 파 include하 char *형 하 #1,#2,#3 strcpy 하 행한 ,
"empty" 화 하 PUSH 할, 한 ... ..
"empty" 화 하 PUSH 할, 한 ... ..
AnswerMe 해 .#1, #2, #3 . 페 해.
~cpp #1 : strcpy(array[i], "empty"); #2 : strcpy(array[0], "empty"); #3 : strcpy(array[tail], "empty");하, . , 한 하 . --NeoCoin
한 . --;;
~cpp #include <iostream> #include <string> using namespace std; const int ASIZE = 5; // VC++ 7.0 파 한 , 행하 행 . // VC++ 6.0 , release 행 . void main() { std::string a; char * array[ASIZE]; // Pointer . , 할 . // char 킬 할 32bit Pointer 5 // . // Pointer .(파 ) int tail = 0, status = 3; int select, count; for(int i = 0 ; i < ASIZE ; i++) strcpy(array[i], "empty"); // Pointer 키 히 한 // . VC++ 6.0 Debug 해 // 한 // . 험 debug 한 // 팅 . Release 파 해. do { cout << "1. PUSH 2. Pop 3. Stack 4. Queue 5. Show 6. Exit" << endl; cin >> select; switch(select) { case 1 : cout << " : "; if (tail == ASIZE) { cout << " 플 ." << endl; break; } cin >> array[tail]; // array[tail] 키 // 하 Pointer. // 할 . 한 , // . tail++; break; case 2 : if(status == 4) //큐 { strcpy(array[0], "empty"); tail--; for(count = 0 ; count < tail ; count++) array[count] = array[count+1]; // string , Pointer . // string , call by value class // . 팅 // . char 포 키 . // 한 . } else //택 { tail--; strcpy(array[tail], "empty"); // , 한 . } break; case 3 : status = 3; break; case 4 : status = 4; break; case 5 : for(count = 0 ; count < tail ; count++) { cout << array[count] << "] "; // , 키 Pointer 하 // . , empty+null // , . } cout << endl; break; case 6 : break; default : cout << " 1 6 하 " << endl; } }while(select != 6); }
, cin 통한
~cpp std:string
, char* cin string
한 string .
~cpp C:\Program Files\Microsoft Visual Studio\VC98\Include\istream
. 하, Debug .한 string .
~cpp string element; cin >> element>> , string , 행합. 하.
~cpp ... ... if (_Ok) // ? enter, space { // state okay, extract characters ...... _Str.erase(); // 할 string 화 element _TRY_IO_BEGIN // /// , _Mysizt _Size = 0 < _Istr.width() && (_Mysizt)_Istr.width() < _Str.max_size() ? (_Mysizt)_Istr.width() : _Str.max_size(); ...... /// 회하, string 하 for (; 0 < _Size; --_Size, _Meta = _Istr.rdbuf()->snextc()) ...... _Str.append(1, _Traits::to_char_type(_Meta)); // 하 한. , string // 할합. ......,
~cpp char* element; cin >> element;팅하 . 한 .
~cpp ...... *_Str++ = _Traits::to_char_type(_Meta); // _Str char* 형 element . , 하 할하 . // , element 키 하 합. // OS 호 할 , // . ......
~cpp #include <iostream> #include <string> using namespace std; const int ASIZE = 5; void main() { string array[ASIZE]; int tail = 0, status = 3; int select, count; for(int i = 0 ; i < ASIZE ; i++) array[i] = "empty"; //#1 do { cout << "1. PUSH 2. Pop 3. Stack 4. Queue 5. Show 6. Exit" << endl; cin >> select; switch(select) { case 1 : cout << " : "; if (tail == ASIZE) { cout << " 플 ." << endl; break; } cin >> array[tail]; tail++; break; case 2 : if(status == 4) //큐 { array[0] = "empty"; //#2 tail--; for(count = 0 ; count < tail ; count++) array[count] = array[count+1]; } else //택 { tail--; array[tail] = "empty"; //#3 } break; case 3 : status = 3; break; case 4 : status = 4; break; case 5 : for(count = 0 ; count < tail ; count++) { cout << array[count] << "]\t"; } cout << endl; break; case 6 : break; default : cout << " 1 6 하 " << endl; } }while(select != 6); }