Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы_по_проге_Берлин / Книги / учебное пособие ОАиП.pdf
Скачиваний:
49
Добавлен:
11.02.2015
Размер:
947 Кб
Скачать

}

else s1=s1->r;

} while(s1->r!=s); return s;

}

zap * napr(char c,zap * s) { switch(c)

{ case 'r': case 'R': return s->r; case 'l': case 'L': return s->l;

}

}

Примеры программ

Пример . Требуется ввести некоторую последовательность символов, заканчивающуюся нажатием клавиши Enter и напечатать ее в обратном порядке (т.е. если на входе будет "строка a1b2-3j" то на выходе должно быть "3j-2b1a акортс". В приводимой ниже программе все символы вводимой последовательности, записываются в стек, а затем содержимое стека считывается. В примере реализована основная особенность стека – последний элемент занесенный в стек, будет извлечен из стека первым.

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

typedef struct st

 

// объявление типа STACK

{ char ch;

 

 

st *ps;

 

 

} STACK;

 

 

main()

 

 

{ STACK *p,*q;

 

 

char a;

 

 

p=0;

 

 

do

//

заполнение стека

{ a=getchar();

 

 

q=(st*)malloc(sizeof(st));

q->ps=p;

 

 

p=q;

 

 

q->ch=a;

 

 

}while(a!=13);

 

 

printf("\n");

 

 

do

//

печать стека

{ p=q->ps;