Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
19.04.2015
Размер:
1.29 Кб
Скачать
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

typedef struct st  {	// элемент очереди
	int info;	// элемент хранения очереди
	struct st *prev;	// указатель на следующий элемент очереди
} QUEUE;

void add(QUEUE **head, QUEUE **tail,  int item); // поместить item в очередь
int shift(QUEUE **head, QUEUE **tail);


int main(){
  QUEUE *head = NULL, *tail = NULL;
  int i,value;
  clrscr();
  for (i = 0; i< 3; i++){
    printf("Vvedite element %d:", i);
    scanf("%d",&value);
    add(&tail,&head,value);
  }
  while (head){
    printf("%d ",shift(&tail,&head));
  }
  return 0;
}

void add(QUEUE **tail, QUEUE **head,  int item){ // поместить item в очередь
// создаем эллемент
  QUEUE *new_item;
  new_item = (QUEUE*)malloc(sizeof(QUEUE)); //выделяем память под новый элемент
  new_item -> info = item; // присваиваем значение новому элементу
  new_item -> prev = NULL;
// устанавливем связи
  (**tail).prev = new_item; // присоединяем новый элемент на вершину
  *tail = new_item;
  if (*head==NULL){
    *head = new_item;
  }
}

int shift(QUEUE **tail, QUEUE **head){
  QUEUE * element = *head;
  int value = element->info;
  *head = (**head).prev;
  free(element);
  if (*head==NULL){
    *tail = NULL;
  }
  return value;
}
Соседние файлы в папке mod3