#include <stdio.h>
#include <stdlib.h>
typedef struct node * Elem;
struct node{
int data;
Elem next;
};
typedef Elem Stack;
void initial(Stack* stack){
Elem p = (Elem)malloc(sizeof(Elem));
p->next = NULL;
*stack = p;
}
int getTop(Stack stack){
Elem p = stack->next;
if(p != NULL){
return p->data;
}else{
return NULL;
}
}
int pop(Stack stack ){
Elem p = stack->next;
if(p != NULL){
int data = p->data;
stack->next = p->next;
// free(p);
return data;
}else{
return NULL;
}
}
void push(Stack stack , int data){
Elem p = (Elem)malloc(sizeof(Elem));
p->data=data;
p->next = stack->next;
stack->next=p;
}
int getLength(Stack stack){
Elem p = stack;
int i = 0;
while(p->next!=NULL){
p=p->next;
i++;
}
return i;
}
void iteratorElem(Stack stack){
Elem p = stack->next;
printf("\n===============================================\n");
int i = 1;
while(p!= NULL){
printf("%d----->%d \t",i,p->data);
p=p->next;
i++;
}
printf("\n===============================================\n");
}
void main(){
Stack stack=NULL;
initial(&stack);
int num = 0;
for(int i =0;i<8;i++){
scanf("%d",&num);
push(stack,num);
}
iteratorElem(stack);
printf("Stack top elem: %d\n",getTop(stack));
printf("Stack elem length: %d\n",getLength(stack));
for(i =0;i<8;i++){
pop(stack);
iteratorElem(stack);
}
}
#include <stdlib.h>
typedef struct node * Elem;
struct node{
int data;
Elem next;
};
typedef Elem Stack;
void initial(Stack* stack){
Elem p = (Elem)malloc(sizeof(Elem));
p->next = NULL;
*stack = p;
}
int getTop(Stack stack){
Elem p = stack->next;
if(p != NULL){
return p->data;
}else{
return NULL;
}
}
int pop(Stack stack ){
Elem p = stack->next;
if(p != NULL){
int data = p->data;
stack->next = p->next;
// free(p);
return data;
}else{
return NULL;
}
}
void push(Stack stack , int data){
Elem p = (Elem)malloc(sizeof(Elem));
p->data=data;
p->next = stack->next;
stack->next=p;
}
int getLength(Stack stack){
Elem p = stack;
int i = 0;
while(p->next!=NULL){
p=p->next;
i++;
}
return i;
}
void iteratorElem(Stack stack){
Elem p = stack->next;
printf("\n===============================================\n");
int i = 1;
while(p!= NULL){
printf("%d----->%d \t",i,p->data);
p=p->next;
i++;
}
printf("\n===============================================\n");
}
void main(){
Stack stack=NULL;
initial(&stack);
int num = 0;
for(int i =0;i<8;i++){
scanf("%d",&num);
push(stack,num);
}
iteratorElem(stack);
printf("Stack top elem: %d\n",getTop(stack));
printf("Stack elem length: %d\n",getLength(stack));
for(i =0;i<8;i++){
pop(stack);
iteratorElem(stack);
}
}