큐 택 ...
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);
}










