67 lines
963 B
Plaintext
67 lines
963 B
Plaintext
/*
|
|
* A stack.
|
|
*
|
|
*/
|
|
|
|
string m_ary[];
|
|
char FIELD_SEP = '\t';
|
|
char RECORD_SEP = '\n';
|
|
|
|
string push(string stack, string entry)
|
|
{
|
|
return stack + entry + RECORD_SEP;
|
|
}
|
|
|
|
string top(string stack)
|
|
{
|
|
int num = strsplit(m_ary, stack, RECORD_SEP);
|
|
return m_ary[num - 1];
|
|
}
|
|
|
|
string pop(string stack)
|
|
{
|
|
int off = strrchr(stack, RECORD_SEP, -2);
|
|
return strsub(stack, off);
|
|
}
|
|
|
|
string bottom(string stack)
|
|
{
|
|
return "";
|
|
}
|
|
|
|
string shift(string stack)
|
|
{
|
|
return "";
|
|
}
|
|
|
|
string unshift(string stack, string entry)
|
|
{
|
|
return "";
|
|
}
|
|
|
|
string t;
|
|
t = push(t, "aaa");
|
|
t = push(t, "bbb");
|
|
t = push(t, "ccc");
|
|
|
|
|
|
string msg;
|
|
string qqq;
|
|
sprintf(msg, "stack:\n%s", t);
|
|
qqq = qqq + msg;
|
|
string s;
|
|
s = top(t);
|
|
sprintf(msg, "top:\n%s", s);
|
|
qqq = qqq + msg;
|
|
t = pop(t);
|
|
s = top(t);
|
|
sprintf(msg, "top:\n%s", s);
|
|
qqq = qqq + msg;
|
|
|
|
t = push(t, "ddd");
|
|
|
|
sprintf(msg, "stack:\n%s", t);
|
|
qqq = qqq + msg;
|
|
|
|
dlgMessageBox(qqq);
|