Practica la tarea para el curso de estructuras de datos, anótala.
Software de compilación: Dev-C++
Primero: empuje en la pila, salga de la pila
Código de implementación:
#include<stdio.h>
typedef struct
{ int x[10]; superior int; }pila;
void initstack(pila *s)
{ s->top==-1; } int vacío(pila *s) { if (s->top==-1) return 1; de lo contrario devuelve 0; } int full(pila *s) { if (s->top==10-1) return 1; de lo contrario devuelve 0; } pushstack(pila *s,int b) { if(full(s)) { ("栈满了\n"); devolver 0; } s->superior++; s->x[s->superior]=b; } int popstack(pila *s) { if (vacío(s)) {printf("该栈为空,不需要出栈\n");} int t;t=s->x[s->top] ; s->superior--; devolver t; }
int main()
{stack S;
int a,i;
initstack(&S);
printf("Ingrese el elemento de la pila:\n");
for(i=0;i<7;i++)
{ scanf("%d " ,&a); pushstack(&S,a);} for(i=0;i<7;i++) printf("El elemento emergente es %d\n",popstack(&S)); return 0; }
resultado de la operación:
Segundo: mostrar el elemento superior de la pila
Código de implementación:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct linknode
{ int data; struct linknode *siguiente; }nodo;
typedef struct
{
struct linknode *arriba;
}pila;
void init(pila *k)
{ k->top=NULL; } void push(stack *k,int x) { nodo *s=(nodo *)malloc(tamaño(nodo)); s->datos=x; s->siguiente=k->superior; k->superior=s; } int pop(pila *k) { if(k->top!=NULL) { nodo *q; q=k->superior; int x=q->datos; k->superior=q->siguiente; libre (q); devolver x; } } int get(stack *k) { if(k->top!=NULL) return k->top->data; } int principal() { pila s1,*t; int a,i;
t=&s1;
init(t);
printf("Ingrese el elemento de la pila:\n");
for(i=0;i<9;i++)
{ scanf("%d",&a); push(t, a); } pop(t); printf("El elemento superior de la pila es: %d\n", get(t)); return 0; }
resultado de la operación: