1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| /*le programme*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct nodetype
{
int data;
struct nodetype *header,*next, *prev;
};
typedef struct nodetype node;
void push(node*, int);
void pop(node*, int*);
void showstack(node*);
void push(node *header, int x)
{
node *q, *p;
p = new(node);
p->data = x;
p->prev=header;
p->next = header->next;
if(header->next != NULL) header->next->prev = p;
header->next = p;
}
void pop(node *header, int *x)
{
node *top,*p;
top = header->next;
if(top != NULL)
{
*x=top->data;
header->next=top->next;
if(top->next != NULL) top->next->prev = header;
free(p);
}
}
void showstack(node *header)
{
node *p;
p = header->next;
while (p != header)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
void main()
{
int code, num;
node *header;
header = new(node);
header->next = header;
header->prev = header;
printf("Enter 1 for push, 2 for pop, or 0 to exit: ");
scanf("%d", &code);
while (code != 0)
{
if (code == 1) // ceci va insere un nombre dans la table
{
printf("Enter a number to be pushed: ");
scanf("%d", &num);
push(header, num);
}
if (code == 2) // ceci effacera le nombre a etre entree
pop(header, &num);
showstack(header);
printf("Enter 1 for insert, 2 for remove, or 0 to exit: ");
scanf("%d", &code);
}
} |
Partager