stack note
参考 http://www.cnblogs.com/java06/archive/2012/10/16/3122428.html
1,顺序栈
定义栈:
#define stacksize 1000;
typedef int datatype; struct seqstack
{
datatype data[stacksize];
int top;
};
置栈空:
void initstack(struct seqstack *s)
{
s -> top = -;
}
判断栈空:
int stackempty(struct seqstack *s)
{
int flag; flag = (s -> top == -)? : ; //此处未用if return flag;
}
入栈:
void push(struct seqstack *s,x)
{
s -> top ++;
if stackfull; //伪
exit("stack overflow\n"); //数组溢出 s -> data[s -> top] = x;
}
2,链栈
定义栈:
typedef struct stacknode
{
datatype data;
struct stacknode *next;
}stacknode; typedef struct
{
stacknode *top;
}linkstack;
置空:
void initstack(linkstack *s)
{
s -> top = NULL;
}
判栈空:
void initstack(linkstack *s)
{
s -> top = NULL;
}
入栈:
void push(linkstack *s, datatype x)
{
struct stacknode *p;
p = malloc(sizeof(struct stacknode));
p -> data = x;
p -> next = s -> top;
s -> top = p;
}
出栈:
datatype pop(linkstack *s)
{
datatype x;
struct stacknode *p = s -> top;
if(stackempty(s))
exit("stack is empty!\n");
x = p -> data;
s -> top = p -> next;
free(p);
return x;
}
取栈顶:
datatype stacktop(linkstack *s)
{
if(stackempty(s))
exit("stack is empty!\n");
return s -> top -> data;
}
stack note的更多相关文章
- SQLite3源程序分析之虚拟机
前言 最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行.Java ...
- struts2默认配置文件 struts-default.xml
注:用的struts2的版本是2.1.6 strtus2的默认配置文件 struts-default.xml ,其中的默认的拦截器,包括其中的拦截器栈. 因为struts2的配置文件struts.xm ...
- 如何捕捉并分析SIGSEGV的现场
linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal Signal Value Action Comment ───────────── ...
- Oracle EBS R12 (12.1.3) Installation Linux(64 bit)
Oracle EBS R12 (12.1.3) Installation Linux(64 bit) Contents Objective. 3 1 Download & Unzip. 3 D ...
- About Flash
Take SAMSUNG K9F1G08U0E for example, and use S3C2416, Windows CE5.0 platform. 要让Flash工作起来,包括两部分: Fla ...
- uC/OS-II核心(Os_core)块
/*************************************************************************************************** ...
- struts2--convention-plugin--零配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...
- Struts2(五):ActionSupport
我们在上一章节中的一个列子中使用到了一个标识跳转到登录页面的例子: 示例是这样写的: index.jsp: <br/> <a href="gotoLoginPage&quo ...
- struts2:拦截器
拦截器(Interceptor)是Struts 2的核心组件,Struts 2框架的大部分功能都是通过拦截器来完成的,例如数据校验,国际化,文件上传和下载等.为了实现这些功能,Struts 2框架提供 ...
随机推荐
- Web 在线文件管理器学习笔记与总结(8)删除文件
unlink($filename) 删除文件 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require ...
- Ubuntu下设置中文字符集支持(解决中文乱码问题)
一. Ubuntu默认的中文字符编码 Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在/etc/environment中看到: sudo gedit /etc/environment ...
- php开源项目
论坛社区:Discuz.PHPWind.ThinkSAAS.phpBB CMS内容管理:DedeCMS.PHPCMS.帝国CMS.齐博CMS.Drupal 企业建站:CmsEasy.KingCMS.P ...
- LR中日志设置和日志函数
LR中日志参数的设置与使用 1.Run-Time Setting日志参数的设置 在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本 ...
- Nginx Location 语法,与简单配置[转]
一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器 ...
- NSURL基本操作示例说明
http://blog.csdn.net/zhibudefeng/article/details/7920686
- 【C51】单片机定时器介绍
标准51架构的单片机有2个定时器 :T0 和 T1,他们2个的用法几乎一样.下面主要讲T0定时器的用法. 初步认知 定时器 和 计数器 都是单片机中同一个模块.他们的实质都是: 加法存储计数器.对 ...
- Qt持久性对象进行序列化
Mfc和Java中自定义类的对象都可以对其进行持久性保存,Qt持久性对象进行序列化当然也是必不可少的.不过这个问题还真困扰了我很长时间……Mfc通过重写虚函数Serialize().Java则是所属的 ...
- C++控制程序只运行一个实例
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ...
- handler机制的原理
andriod提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageExchange). 1)Loo ...