三九宝宝网宝宝教育教学论文

用C语言实现栈的操作包括创建空栈 PUSH和POP

02月23日 编辑 39baobao.com

[用C语言实现数据结构中常用算法如对链表的操作查找排序等]#include <iostream.h> class ram { public: char wenzi[200]; ram *p; }; ram wo,*ai=&wo; int num=0;//我申请了几次内存了 void xie(void);//输入数据,然后分配内存为下次做...+阅读

顺序栈://---------------------------------------------------------------------------#include #include #define STACK_MAX 100 typedef int DT; typedef struct{ int size; int top; DT data[STACK_MAX]; } stack; void init(stack *st) /*初始化顺序栈*/ { st->size=0; st->top=-1; } DT pop(stack *a) /*出栈*/ { if (a->size==0) { fprintf(stderr,"STACK IS EMPTY"); exit(-1); } a->size--; return a->data[a->top--]; } void push(stack *a,DT tdata) /*入栈*/ { if (a->size==STACK_MAX) { fprintf(stderr,"STACK IS FULL"); exit(1); } a->size++; a->data[++(a->top)]=tdata; } int main(void) /*试验*/ { stack st; init(&st); push(&st,5); push(&st,6); printf("%d",pop(&st)); return 0; }//--------------------------------------------------------------------------- 链栈://---------------------------------------------------------------------------#include #include typedef int DT; typedef struct node{ DT data; struct node *next; } node; typedef struct{ unsigned int cnt; node *top; } stack; stack *create(void) /*创建空栈*/ { stack *rt=(stack*)malloc(sizeof(stack)); rt->cnt=0; rt->top=NULL; return rt; } DT pop(stack *s) /*出栈*/ { node *dl=s->top; DT rt; if (dl==NULL) { fprintf(stderr,"ERROR! STACK IS EMPTY\n"); exit(-1); } s->top=dl->next; s->cnt--; rt=dl->data; free(dl); return rt; } void push(stack *s,DT tdata) /*入栈*/ { node *td=(node *)malloc(sizeof(node)); td->data=tdata; td->next=s->top; s->top=td; s->cnt++; } int main(void) /*试验*/ { stack *st=create(); push(st,5); push(st,6); printf("%d",pop(st)); return 0; }//---------------------------------------------------------------------------

以下为关联文档:

用C语言实现矩阵的乘法void main() {int a[100][100],b[100][100],c[100][100],i,j,k,m,n,h;<br/> scanf("%d%d%d",&k,&m,&n);<br/> for(i=0;i<k;i++)<br/> for(j=0;j<m;j++)<br/> scanf("%d",&a[i][j...

在vs2005里怎么用C语言来实现打开文件操作呢这个是我常用的代码,现在已经封装成一个方法,请你参考。 public void Open(string FileName) { string shortName = FileName.Substring(FileName.LastIndexOf("/"), FileName.L...

易语言怎么实现C的指针操作//模板类作为友元时要先有声明 template class SmartPtr; template class U_Ptr //辅助类 { private: //该类成员访问权限全部为private,因为不想让用户直接使用该类 friend c...

用c语言如何实现图形操作graph的相关库对windows支持不好 我曾经遇到过同样的问题 1年前左右吧,我在学校用win98,tc2.0环境下编的俄罗斯方块,发到网上,n多人说不好用,我就不信,结果拿回家是win xp的环境,...

c语言用外部变量实现栈#include#include#include#define STACK_SIZE 100 //定义了堆栈的大小int contents[STACK_SIZE]; //将堆栈定义为数组int top = 0; //栈顶为数组元素零,top是栈顶指针。void ma...

C语言求栈的简单例子#include"iostream.h" const int maxsize=6; class stack{ float data[maxsize]; int top; public: stack(void); ~stack(void); void push(float a); bool empty(void); floa...

栈的操作用c语言#include <stdio.h> #define MAXSIZE 100 #define ERROR -1 typedef struct { int element[MAXSIZE]; int top; }stack; void InitStack(stack *s) { s->top=0; } bool IsEm...

栈的基本操作的C语言程序#include <stdio.h> #include <stdlib.h> #define MAX 1024 ///栈使用数组模拟,MAX是最大元素个数 typedef int DataType; ///数据域使用整形 typedef struct _stack { DataTy...

栈的c语言实现基本操作写了一个链式栈,你看看# include # include # include typedef struct Node { int data; struct Node *pNext; }NODE, *PNODE; typedef struct Stack { PNODE pTop; PNODE pB...

推荐阅读
图文推荐