栈实现(数据结构---数组,链表 C实现)
来源:互联网 发布:大数据特征的 4v 理论 编辑:程序博客网 时间:2024/05/29 19:06
#include<stdio.h>#include<stdlib.h>//栈的数组实现struct StackRecord{ int Capacity; int TopOfStack; int *Array;};typedef struct StackRecord *Stack;Stack CreateStack(int Length){ Stack S; S = (Stack)malloc(sizeof(struct StackRecord)); S->Array = (int*)malloc(Length * sizeof(int)); S->Capacity = Length; S->TopOfStack = -1; return S;}void DisposeStack(Stack S){ if (S != NULL) { free(S->Array); free(S); }}int IsEmpty(Stack S){ return S->TopOfStack == -1;}int IsFull(Stack S){ return S->Capacity == (S->TopOfStack+1);}void MakeEmpty(Stack S){ S->TopOfStack = -1;}void Push(int x, Stack S){ if (IsFull(S)) { printf("Full Stack\n"); return; } else S->Array[++ S->TopOfStack] = x;}int Top(Stack S){ if (!IsEmpty(S)) return (S->Array[S->TopOfStack]); printf("Empty Stack\n"); return 0;}int Pop(Stack S){ if (IsEmpty(S)) { printf("Empty Stack\n"); return ; } else return(S->Array[S->TopOfStack--]);}int TopAndPop(Stack S){ if (!IsEmpty) return(S->Array[S->TopOfStack--]); printf("Empty Stcak\n"); return 0;}
#include<stdio.h>#include<stdlib.h>//链表实现,元素默认的字符~~~struct Node{ double a; struct Node *next;};typedef struct Node *Stack;Stack CreakStack(){ Stack S; S = (Stack)malloc(sizeof(Node)); S->next = NULL; return S;}void Push(char c, Stack S){ Stack tmp; tmp = (Stack)malloc(sizeof(Node)); tmp->a = c; tmp->next = S->next; S->next = tmp;}void Pop(Stack S){ Stack tmp; tmp = S->next; S->next = tmp->next; free(tmp);}char Top(Stack S){ return(S->next->a);}bool Isempty(Stack S){ return S->next == NULL;}
阅读全文
1 0
- 栈实现(数据结构---数组,链表 C实现)
- C语言------数据结构(栈操作,数组实现)
- C语言数据结构-栈-数组实现
- 数据结构之数组(C语言实现)
- 【数据结构】栈学习之数组实现(C语言)
- c语言实现数据结构中的栈(数组模拟)
- 数据结构C语言实现数组
- 数据结构-----栈数组实现
- 数据结构---栈(数组实现)
- c数据结构之顺序栈(数组实现1)
- C数据结构之顺序栈(数组实现2)
- C 数据结构使用数组和链表实现栈
- 数据结构(栈)c/c++/java实现
- 1.数据结构(C语言)---自定义数组的简单实现
- 数据结构(二) -- 栈 数组实现
- 数据结构一(栈-数组实现)
- 数据结构--队列之C数组实现
- C语言数据结构-顺序队列-数组实现
- 多态
- Visual VM操作手册
- Spring transaction事务之roll back回滚: rollback-for
- vue-css过渡效果
- 遍历一个文件夹
- 栈实现(数据结构---数组,链表 C实现)
- 【Scikit-Learn 中文文档】线性和二次判别分析
- visjs关系图-双击折叠展开子节点(隐藏显示子节点)以及位置自定义
- c++ thread
- Swift
- (学习)SQL注入-POST注入
- java中数据内存分配
- React props和state的区别
- 【Scikit-Learn 中文文档】内核岭回归