栈
来源:互联网 发布:云计算项目 编辑:程序博客网 时间:2024/05/20 17:24
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- struct node
- {
- int num;
- struct node*next;
- };
- typedef struct node Node;
- struct stacklink
- {
- Node *top;
- };
- typedef struct stacklink Stack;
- void create_stack(Stack **stack)
- {
- (*stack) = (Stack*)malloc(sizeof(Stack));
- if((*stack) == NULL)
- {
- printf("malloc error!\n");
- exit(-1);
- }
- }
- void init_stack(Stack **stack)
- {
- (*stack)->top = NULL;
- }
- void push_stack(Stack**stack,int num)
- {
- Node *newnode = NULL;
- newnode = (Node*)malloc(sizeof(Node));
- if(newnode == NULL)
- {
- printf("malloc error!\n");
- exit(-1);
- }
- newnode->num = num;
- if((*stack)->top == NULL)
- {
- (*stack)->top = newnode;
- newnode->next = NULL;
- }
- else
- {
- newnode->next = (*stack)->top;
- (*stack)->top = newnode;
- }
- }
- int pop_stack(Stack **stack)
- {
- int num;
- if((*stack)->top == NULL)
- {
- printf("stack is empty\n");
- return -1;
- }
- num =(*stack)->top->num;
- free((*stack)->top);
- (*stack)->top = (*stack)->top->next;
- return num;
- }
- int main()
- {
- Stack *stack;
- int i;
- int tmp;
- int result;
- srand(time(NULL));
- create_stack(&stack);
- init_stack(&stack);
- for(i=0;i<10;i++)
- {
- tmp = rand() % 100;
- if(tmp > 50)
- {
- push_stack(&stack,i);
- printf("push num %d\n",i);
- }
- else
- {
- result = pop_stack(&stack);
- if(result != -1)
- {
- printf("pop num %d\n",result);
- }
- }
- }
- return 0;
- }
0 0
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 同步与异步和阻塞与非阻塞
- SSM框架 之 Spring-IOC
- 理解JAVA的Semaphore信号量
- spring注解(二)
- HDU5584 证明题..
- 栈
- 洛谷P1896 互不侵犯king
- 在 RHEL、CentOS 和 Fedora 上安装 Git 及设置 Git 账号的技巧
- iOS视频采集(三)
- 第十二周项目4----利用遍历思想求解图问题
- 选择排序
- a标签
- 欢迎使用CSDN-markdown编辑器
- java护士排班 test 根据 1天24小时分成6班,一个护士一天上8个小时,一周上40小时,进行一周排班安排!拷贝,直接运行。