- 浏览: 109873 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (151)
- 120D02 (5)
- 直升机 (1)
- 我的技术资料收集 (82)
- 的技术资料收集 (4)
- .NET Solution (2)
- ASP.NET (1)
- Linq to sql (1)
- 数据库技术(MS SQL) (2)
- 架构/设计 (1)
- 敏捷/持续集成 (1)
- C#.NET开发 (1)
- Matlab开发 (1)
- WinForm开发 (1)
- 开源技术 (1)
- jQuery (1)
- 我的博文 (4)
- js (2)
- android (2)
- 9. 读书笔记 (1)
- CSS3 (1)
- HTML5 (1)
- JavaScript (5)
- 移动开发 (2)
- 编程心得 (1)
- Linux操作系统 (1)
- (BI)商业智能 (1)
- IOS (1)
- Windows Phone (2)
- C# API (1)
- JQuery系列 (1)
- TFS (1)
- C# (2)
- ExtJs (1)
- .NET (1)
- Nginx (1)
- WCF学习笔记 (1)
- Computer Graphic (1)
- IT产品 (1)
- 工具分享 (1)
- MySelf (1)
- C#专栏 (1)
- 管理 (1)
- 基于Oracle Logminer数据同步 (1)
- 日常 (1)
- 实用工具 (1)
- 网页设计 (1)
- avalon (1)
- flash (1)
- DDD (1)
- 01 技术Android (1)
- WCF (1)
- selenium (1)
最新评论
-
464410531:
三国杀。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...
实用的职场宝典:不提拔你,就因为你只想把工作做好
原帖地址:http://www.cnblogs.com/zxjie/archive/2013/06/04/3116523.html
1 //栈的顺序存储相关操作
2 #include<stdio.h>
3 #include<stdlib.h>
4 //#include<string.h>
5 #define MAX 100
6 //定义结构体
7 typedef struct Stack
8 {
9 int *data;
10 int *top;
11 int stacksize;
12 }Stack;
13 //初始化空栈
14 int stackinit(Stack *s)
15 {
16 s->data=(int*)malloc(sizeof(int)*MAX);
17 if(s->data==NULL)
18 {
19 printf("初始化失败!");
20 }
21 s->top=s->data;
22 s->stacksize=MAX;
23 return 0;
24 }
25
26 //判断是否为空
27 int stackisempty(Stack *s)
28 {
29 if(s->data==s->top)
30 {
31 return 1;
32 }
33 else
34 {
35 return 0;
36 }
37 }
38 //进栈
39 int stackpush(Stack *s,int a)
40 {
41 if(s->top-s->data>=s->stacksize)
42 {
43 s->data=(int*)realloc(s->data,sizeof(int)*(MAX+s->stacksize));
44 if(s->data==NULL)
45 {
46 printf("重新分配空间失败!");
47 return 0;
48 }
49 s->stacksize=s->stacksize+MAX;
50 s->top=s->data+MAX;
51 }
52 *s->top=a;
53 s->top++;
54 return 1;
55 }
56 //出栈
57 int stackpop(Stack *s,int *a)
58 {
59 if(stackisempty(s)==1)
60 {
61 printf("出栈失败!");
62 return 0;
63 }
64 else
65 {
66 s->top--;
67 *a=*s->top;
68 return 1;
69 }
70 }
71
72 //返回栈的长度
73 int stacklength(Stack *s)
74 {
75 return (s->top-s->data);
76 }
77 //遍历栈
78 int stacktraverse(Stack *s)
79 {
80 int *s1=NULL;
81 // s1=(int *)malloc(sizeof(int));
82 s1=s->top;
83 if(stackisempty(s)==1)
84 {
85 printf("栈为空!");
86 return 0;
87 }
88 while(--s1!=s->data)
89 {
90 printf("%d ",*s1);
91 }
92 printf("\n");
93 return 1;
94 }
95 //清空栈
96 int stackdestory(Stack *s)
97 {
98 s->top=s->data;
99 return 1;
100 }
101 void main()
102 {
103 int i=0;
104 int a=0;
105 Stack s;
106 stackinit(&s);
107 for(i=0;i<10;i++)
108 {
109 stackpush(&s,i);
110 }
111 printf("length of s :%d\n",stacklength(&s));
112 stacktraverse(&s);
113 stackpop(&s,&a);
114 printf("pop:%d\n",a);
115 stacktraverse(&s);
116 printf("length of s :%d\n",stacklength(&s));
117 printf("s is empty?:%d\n",stackisempty(&s));
118 stackdestory(&s);
119 printf("s is empty?:%d\n",stackisempty(&s));
120 }
发表评论
-
Javascript:猜猜弹出的是啥?为啥? - 幸福框架
2013-06-28 13:33 434原帖地址:http://www.cnblogs.com/hap ... -
C#中WindowsForm常见控件的运用 -- - 李晓峰
2013-06-28 13:27 1755原帖地址:http://www.cnblogs.com/liy ... -
海量数据处理利器之Hash——在线邮件地址过滤 - MyDetail
2013-06-27 12:00 660原帖地址:http://www.cnblo ... -
ASP.NET MVC 4 for Visual Studio 2010 下载地址 - 张鸿伟
2013-06-27 11:48 758原帖地址:http://www.cnblogs.com/wei ... -
【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化 - r01cn
2013-06-26 11:00 921原帖地址:http://www.cnblogs.com/r01 ... -
[珠玑之椟]估算的应用与Little定律 - 五岳
2013-06-26 10:54 645原帖地址:http://www.cnblogs.com/wuy ... -
30行,金额转人民币大写的代码 - 史蒂芬.王
2013-06-26 10:42 1028原帖地址:http://www.cnblogs.com/ste ... -
从银行的钱荒看一个公司的团队建设 产品线过多最终导致最赚钱的项目面临破产 - James Li
2013-06-26 10:36 637原帖地址:http://www.cnblogs.com/Jam ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 13:39 541原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 13:33 620原帖地址:http://www.cnblo ... -
如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" - 量子计算机
2013-06-25 13:27 873原帖地址:http://www.cnblogs.com/DSh ... -
一步一步将自己的代码转换为观察者模式 - 文酱
2013-06-23 11:36 616原帖地址:http://www.cnblo ... -
iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance) - VicStudio
2013-06-23 11:30 550原帖地址:http://www.cnblogs.com/vic ... -
记录asp.net在IE10下事件丢失排错经过 - Adming
2013-06-23 11:24 717原帖地址:http://www.cnblogs.com/wea ... -
记 FineUI 官方论坛所遭受的一次真实网络攻击!做一个像 ice 有道德的黑客! - 三生石上
2013-06-23 11:18 800原帖地址:http://www.cnblogs.com/san ... -
3、使用Oracle Logminer同步Demo
2013-06-19 10:33 575原帖地址:http://www.cnblogs.com/shi ... -
算法实践——数独的基本解法
2013-06-19 10:27 1458原帖地址:http://www.cnblogs.com/gre ... -
简单实现TCP下的大文件高效传输
2013-06-19 10:21 697原帖地址:http://www.cnblogs.com/sma ... -
avalon - 初步接触
2013-06-18 10:06 788原帖地址:http://www.cnblogs.com/aar ... -
Nginx学习笔记(一) Nginx架构
2013-06-18 09:59 535原帖地址:http://www.cnblogs.com/cod ...
相关推荐
数据结构中的顺序栈是一种特殊的线性表,它具有后进先出(LIFO)的特点,即...通过设计和实现顺序栈的基本操作,学生能够更好地掌握数据结构的原理和应用,而数制转换问题则进一步巩固了对数值计算和算法设计的理解。
数据结构是计算机科学中的...总结来说,顺序栈是一种简单而有效的数据结构,利用数组实现,提供了快速的插入和删除操作。通过分析和理解上述代码,我们可以更好地掌握顺序栈的原理和使用方法,并能应用于实际问题中。
总结来说,栈作为基础数据结构,其基本操作包括压栈、弹栈、查看栈顶元素、检查栈是否为空以及获取栈的大小。在各种计算任务和算法中,栈都扮演着不可或缺的角色。顺序栈作为栈的一种实现形式,以其简单的结构和易于...
### 数据结构之栈和队列知识点详解 #### 一、选择题知识点解析 1. **栈的操作原则** 栈是一种特殊的线性表,它只允许在一端进行插入和删除操作,这一端称为栈顶(top)。另一端称为栈底(bottom),不允许在其上进行...
栈被称为“后进先出”(Last In, First Out,简称LIFO)的数据结构,它的主要操作包括压栈(Push)和弹栈(Pop)。压栈是指将元素添加到栈顶,而弹栈则是从栈顶移除元素。栈在计算机科学中的应用非常广泛,例如...
在数据结构中,栈是一种非常重要的数据结构,通常被称为后进先出(Last In First Out,LIFO)的线性数据结构。本文将详细介绍栈的概念、实现方式以及在编程和算法设计中的应用,并提出一种教学设计方案,以此帮助...
数据结构是计算机科学中的核心概念,它涉及到如何...在实际应用中,除了基础的栈操作,还可以扩展其他功能,如获取栈的当前大小、查找某个元素等。理解并熟练掌握栈的实现与操作,对编程和算法设计有着至关重要的作用。
在 `main` 函数中,通过调用上述定义的栈操作函数,实现了对栈的初始化、元素的入栈、出栈以及打印栈内元素的功能。用户可以输入要入栈的元素数量,程序会依次执行这些操作,并在每次出栈后展示剩余的栈内元素。 7...
该代码主要完成数据结构中关于栈的一些操作函数,包括初始化栈,压栈,出栈等操作,本代码还对栈的具体应用给予举例,来完成进制数据之间的转换,包括将十进制数转换为二进制数和八进制数,希望对学习数据结构的同志...
在提供的压缩包文件“栈和队列”中,可能包含了关于这两种数据结构的实例代码、练习题或者相关教程,通过学习和实践这些材料,你将能够更深入地理解栈和队列的工作原理,并能灵活地应用于实际项目中。
在这个主题中,“数据结构之栈的定义及实现”将深入探讨栈的基本概念、操作以及在编程中的具体实现。 栈的定义: 栈是一种线性数据结构,它的特点是元素只能在栈的一端进行插入和删除操作,这一端被称为栈顶。新...
在这里,我们可以理解为创建了一个类似CArray和CList的组合数据结构,它既支持线性表的操作,也支持栈的操作。 对于顺序存储结构的栈,其基本操作包括: 1. 入栈(Push):在栈顶添加元素。 2. 出栈(Pop):移除并...
在这个“数据结构栈的表达式实验报告”中,主要讨论了如何利用栈来实现算术表达式的求值。 实验的目标是加深对栈逻辑特性和物理特性的理解,并通过实际编程锻炼应用解决复杂问题的能力。具体来说,实验要求用C++...
### 数据结构栈和队列知识点解析 #### 一、栈的基本概念与操作 **栈**是一种特殊的线性表,只允许在一端进行插入和删除操作,这一端被称为栈顶,另一端被称为栈底。栈遵循先进后出(First In Last Out, FILO)的...
有关顺序栈的基本操作算法,分别编写栈初始化、入栈、出栈取栈顶元素等与本实验有关的实现顺序基本操作的函数以及括号匹配判断函数
以上代码展示了如何使用C语言创建一个基本的栈数据结构,并实现了主要的栈操作。在实际应用中,你可以根据需要对这些基本操作进行扩展,比如支持多类型元素、错误处理等。 在压缩包中,可能包含了实现这些功能的源...
数据结构中栈的操作,输入与输出,可以正常运行
在本题中,我们讨论的是一个栈子系统,它包括了多个与栈操作相关的功能,如进栈、出栈、显示栈内所有元素以及两个特定的应用程序:将十进制数转换为二进制数和将中缀表达式转换为后缀表达式(逆波兰式)。...
在本项目"数据结构栈计算器"中,我们将深入探讨栈这一特殊的数据结构及其在实现计算器功能时的应用。栈是一种后进先出(LIFO)的数据结构,常用于解决逆序操作的问题,比如表达式求值。 首先,让我们来看看"中缀转...
基于c语言数据结构中栈和队列思想的简单停车场管理系统,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车...