A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2FData_Structure_Algorithm%2FStack</id>
		<title>C/Data Structure Algorithm/Stack - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2FData_Structure_Algorithm%2FStack"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C/Data_Structure_Algorithm/Stack&amp;action=history"/>
		<updated>2026-04-17T19:44:20Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C/Data_Structure_Algorithm/Stack&amp;diff=228&amp;oldid=prev</id>
		<title> в 14:20, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C/Data_Structure_Algorithm/Stack&amp;diff=228&amp;oldid=prev"/>
				<updated>2010-05-25T14:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:20, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C/Data_Structure_Algorithm/Stack&amp;diff=229&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C/Data_Structure_Algorithm/Stack&amp;diff=229&amp;oldid=prev"/>
				<updated>2010-05-25T10:22:27Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A simple four-function calculator==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#define MAX 100&lt;br /&gt;
int *p;   /* will point to a region of free memory */&lt;br /&gt;
int *tos; /* points to top of stack */&lt;br /&gt;
int *bos; /* points to bottom of stack */&lt;br /&gt;
void push(int i)&lt;br /&gt;
{&lt;br /&gt;
  if(p &amp;gt; bos) {&lt;br /&gt;
    printf(&amp;quot;Stack Full\n&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  *p = i;&lt;br /&gt;
  p++;&lt;br /&gt;
}&lt;br /&gt;
int pop(void)&lt;br /&gt;
{&lt;br /&gt;
  p--;&lt;br /&gt;
  if(p &amp;lt; tos) {&lt;br /&gt;
    printf(&amp;quot;Stack Underflow\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
  return *p;&lt;br /&gt;
}&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int a, b;&lt;br /&gt;
  char s[80];&lt;br /&gt;
  p = (int *) malloc(MAX*sizeof(int)); /* get stack memory */&lt;br /&gt;
  if(!p) {&lt;br /&gt;
    printf(&amp;quot;Allocation Failure\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  tos = p;&lt;br /&gt;
  bos = p + MAX-1;&lt;br /&gt;
  printf(&amp;quot;Four Function Calculator\n&amp;quot;);&lt;br /&gt;
  printf(&amp;quot;Enter &amp;quot;q&amp;quot; to quit\n&amp;quot;);&lt;br /&gt;
  do {&lt;br /&gt;
    printf(&amp;quot;: &amp;quot;);&lt;br /&gt;
    gets(s);&lt;br /&gt;
    switch(*s) {&lt;br /&gt;
      case &amp;quot;+&amp;quot;:&lt;br /&gt;
        a = pop();&lt;br /&gt;
        b = pop();&lt;br /&gt;
        printf(&amp;quot;%d\n&amp;quot;, a+b);&lt;br /&gt;
        push(a+b);&lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;-&amp;quot;:&lt;br /&gt;
        a = pop();&lt;br /&gt;
        b = pop();&lt;br /&gt;
        printf(&amp;quot;%d\n&amp;quot;, b-a);&lt;br /&gt;
        push(b-a);&lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;*&amp;quot;:&lt;br /&gt;
        a = pop();&lt;br /&gt;
        b = pop();&lt;br /&gt;
        printf(&amp;quot;%d\n&amp;quot;, b*a);&lt;br /&gt;
        push(b*a);&lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;/&amp;quot;:&lt;br /&gt;
        a = pop();&lt;br /&gt;
        b = pop();&lt;br /&gt;
        if(a==0) {&lt;br /&gt;
          printf(&amp;quot;Divide by 0.\n&amp;quot;);&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        printf(&amp;quot;%d\n&amp;quot;, b/a);&lt;br /&gt;
        push(b/a);&lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;.&amp;quot;: /* show contents of top of stack */&lt;br /&gt;
        a = pop();&lt;br /&gt;
        push(a);&lt;br /&gt;
        printf(&amp;quot;Current value on top of stack: %d\n&amp;quot;, a);&lt;br /&gt;
        break;&lt;br /&gt;
      default:&lt;br /&gt;
        push(atoi(s));&lt;br /&gt;
    }&lt;br /&gt;
  } while(*s != &amp;quot;q&amp;quot;);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stack in C==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#define SIZE 50&lt;br /&gt;
void push(int i);&lt;br /&gt;
int pop(void);&lt;br /&gt;
int  *tos, *p1, stack[SIZE];&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int value;&lt;br /&gt;
  tos = stack; /* tos points to the top of stack */&lt;br /&gt;
  p1 = stack; /* initialize p1 */&lt;br /&gt;
  do {&lt;br /&gt;
    printf(&amp;quot;Enter value: &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;, &amp;amp;value);&lt;br /&gt;
    if(value != 0) push(value);&lt;br /&gt;
    else printf(&amp;quot;value on top is %d\n&amp;quot;, pop());&lt;br /&gt;
  } while(value != -1);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
void push(int i)&lt;br /&gt;
{&lt;br /&gt;
  p1++;&lt;br /&gt;
  if(p1 == (tos+SIZE)) {&lt;br /&gt;
    printf(&amp;quot;Stack Overflow.\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  *p1 = i;&lt;br /&gt;
}&lt;br /&gt;
int pop(void)&lt;br /&gt;
{&lt;br /&gt;
  if(p1 == tos) {&lt;br /&gt;
    printf(&amp;quot;Stack Underflow.\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  p1--;&lt;br /&gt;
  return *(p1+1);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>