数据结构 -- 栈的操作

来源:互联网 发布:关于网络舆论的论文 编辑:程序博客网 时间:2024/06/14 23:42

顺序栈的操作:新建一个栈,入栈,出栈

以下代码在vs2010测试通过:

/*** 栈的顺序存储*/#include "stdafx.h"#include "stdlib.h"#include "stdio.h"#define MAXSIZE 20typedef struct stack{int stacks[MAXSIZE];int top;}seqStack;void sequence_init_stack(seqStack* s){s->top = -1;}void push_stack(seqStack* s,int value){if(s->top < MAXSIZE-1){s->top++;s->stacks[s->top] = value;}}int pop_stack(seqStack* s){if(s->top == -1){return NULL;}return s->stacks[s->top--];}int _tmain(int argc, _TCHAR* argv[]){seqStack s;int stackLength,em;//创建栈sequence_init_stack(&s);//入栈printf("请输入要入栈的数字的个数:");scanf("%d",&stackLength);if(stackLength <= 0){return 0 ;}for(int i=0; i < stackLength ; i++){printf("请输入入栈的数字:");scanf("%d",&em);push_stack(&s,em);}//出栈printf("出栈的数字依次为:\n");for(int j=0; j< stackLength; j++){printf("%d\t",pop_stack(&s));}system("pause");return 1;}

链栈的操作:新建一个栈,入栈,出栈

#include "stdafx.h"#include "stdio.h"#include "stdlib.h"typedef struct stackNode{int data;struct stackNode *next;}StackNodePro;typedef struct stackList{StackNodePro* top;int count;}StackListPro;void list_stack_create(StackListPro** s){*s = (StackListPro *)malloc(sizeof(StackListPro));if((*s) != NULL){(*s)->top = NULL;(*s)->count = 0 ;}}void list_stack_push(StackListPro* s,int value){StackNodePro *snode;snode = (StackNodePro *)malloc(sizeof(StackNodePro));if(snode != NULL){snode->data = value;snode->next = s->top;s->top = snode;s->count++;}}int list_stack_pop(StackListPro* s){if(s == NULL || s->count ==0){return 0;}StackNodePro *pop_node;int pop_value;pop_value = (s->top)->data;s->count--;pop_node = s->top;s->top = s->top->next;free(pop_node);return pop_value;}int _tmain(int argc, _TCHAR* argv[]){StackListPro *s = NULL;//建栈list_stack_create(&s);//入栈int push_num,push_value;printf("请输入入栈的数字个数:");scanf("%d",&push_num);for(int i=0; i< push_num; i++){printf("请输入入栈的数字:");scanf("%d",&push_value);list_stack_push(s,push_value);}//出栈printf("\n出栈的数字顺序为:\n");while(s->top != NULL && s->count > 0){printf("%d\t",list_stack_pop(s));}system("pause");return 0;}


0 0
原创粉丝点击