摘要: 1.栈的定义栈(stack)是限制仅在表一端进行插入或删除操作的线性表。(1)通常称插入或删除的一端为栈顶(Top),另一端为栈底(Bottom)(2)当表中没有元素时称为空栈(3)栈为后进先出(last in first out)线性表,也称为LIFO表2.顺序栈顺序栈的类型定义#define stacksize 1000; //预分配的栈的空间最多为1000个元素 typedef int datatype; struct seqstack { datatype data[stacksize]; int top; };顺序栈的基本操作栈置空/** * Description:栈置空 ... 阅读全文
posted @ 2012-10-16 18:18 java程序员填空 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 前言大年初七回到学习开始复习算法,重新看了这个堆栈的代码,实在不明白为什么这么多人会踩,感觉链栈实现的不错啊,增加一个顺序栈ac的代码,希望大家评价的时候真的是看了我的代码,写的不好可以留言指导我题目题目描述: 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。Push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 输入: 对于每组测试数据,第一行是一个正整数 n,0<n<=10000(n=0 结束)。而后的 n 行,每行的第一个字符可能是'P’或者'O’或者'A’;如果是'P’,后面还 阅读全文
posted @ 2012-10-16 16:52 java程序员填空 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 起因记录一下自己线性表的学习过程,当年大学有老师讲的时候听的一塌糊涂,现在研究生二年级了,自己复习一下,总结一些对本科生可用的经验吧线性表的单链表存储结构//线性表的单链表存储结构(教科书恶心版) typedef struct lnode { int data; struct lnode *next; }lnode, *linklist;我没资格抨击教科书这种书写方式,但是我真的觉得很恶心,直到我现在才明白这种写法的真正意图,写一个自己改版的,认为更方便新手理解//自己改写的单链表存储结构 struct lnode { int data; struct lnode *next; }; ... 阅读全文
posted @ 2012-10-16 15:01 java程序员填空 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 起因在九度练习acm的时候,有道题我认为应该先进行数组去重操作,由于工作中我大部分都是用php写代码,php中数组去重只要一个array_diff()函数即可实现,但是到C语言中,我就没有现成的api函数可以让我调用了,因此我自己实现了一个算法,进行数组去重,但是这个算法有明显的缺陷,我会先把算法展示出来,然后解释算法的缺陷数组去重代码#include <stdio.h> #include <stdlib.h> #define false -1 int arraydiff(int *A, int max, int len); int main() { int a[100 阅读全文
posted @ 2012-10-16 00:03 java程序员填空 阅读(671) 评论(0) 推荐(0) 编辑