 
        
        
          Добавил:
          
          
        
        
    
            FluffyUnicorn
            
            
            
            
            
            Опубликованный материал нарушает ваши авторские права? Сообщите нам.
          
          Вуз:
          Предмет:
          Файл:Структуры данных примеры / Стек / stacklist
.c/*Структура данных - стек, структура хранения - односвязный список*/
#include <stdio.h>
#include <stdlib.h>
#define DataType int
#define ELEMENT struct Element
#define STACK struct Element *
struct Element
{
	DataType element;
	struct Element *next;
};
void MakeNull (STACK *pstack);	/*пустой стек*/
int Empty (STACK *pstack);		/*стек пуст*/
int Full (STACK *pstack);       /*стек полон*/
DataType Top (STACK *pstack);		/*элемент с вершины*/
DataType Pop (STACK *pstack);		/*удаление элемента*/
int Push (DataType x, STACK *pstack);	    /*добавление элемента*/
int main()
{
STACK stack;
int i;
MakeNull(&stack);
for (i=1; i<6; i++)
	Push (i, &stack);
while (!Empty(&stack))
	printf("%d ", Pop(&stack));
system("pause");
return 0;
}
void MakeNull (STACK *pstack)
{
	*pstack = NULL;
}
 
int Empty(STACK * pstack)
{
	if (*pstack==NULL)
		return 1;
	else
		return 0;
}
int Full (STACK *pstack)
{
   ELEMENT * temp = (ELEMENT *) malloc (sizeof (ELEMENT));
   if  (temp==NULL) return 1;
   free (temp);
   return 0;
}
DataType Top (STACK *pstack)
{
    return (*pstack)->element;
}
DataType Pop (STACK *pstack)
{
	DataType temp;
    ELEMENT *del = *pstack;
	*pstack = (*pstack)->next;
	temp = del->element;
	free (del);
	return temp;
}
int Push (DataType x, STACK *pstack)
{
	ELEMENT *ins;
	ins = (ELEMENT *) malloc (sizeof (ELEMENT));
	if (ins==NULL) return 0;
	ins->element = x;
	ins->next = *pstack;
	*pstack = ins;
	return 1;
}
          Соседние файлы в папке Стек
          
      
    
    
    
          