j`ai recris tout est ce que j`ai en ce moment c`est sans warning et sans faute....mais comme je l`ai dit quand la satck est vide le programme aurait du s`arreter .........
en fait
est du c++ je crois

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
struct nodetype
{
	int data;
	struct nodetype *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);
	}
}