![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
chowming
这个作者很懒,什么都没留下…
展开
-
数据结构--单链表
链表是最基本的数据结构之一,链表可以根据访问的方向可以为单链表、双链表.单链表只能从向后遍历,而双链表的遍历方向是双向的。而在一些教材中将单链表和双链表又细分为带表头、循环链表等。 带表头是为了让链表操作方便,表头是一个不带关键字的空节点,这个节点可以标识链表,空的带表头的链表也会含有一个表头节点,表头节点让我们进行插入删除等操作会很方便。 双向链表相对于单链表可以反向遍历链表,但是每个节点会多出一个指向前面节点的指针。为了简单是描述链表的一些操作,下面实现的是一个带表头的单链表。具体实原创 2010-06-30 20:41:00 · 262 阅读 · 0 评论 -
数据结构--栈
<br /> 栈也是一种基本的数据结构,是一种非常重要、应用非常广泛的数据结构。将递归算法转换为非递归算法一般都会涉及到栈的使用,函数调用的机制也用到了栈这种数据结构。当然,栈的操作少,实现简单。<br /> 栈的基本操作可以分为:入栈,出栈,返回栈顶元素三种操作。下面是具体实现:<br /> <br /> <br />#include <stdio.h>#include <stdlib.h>#define STACK_SIZE 100typedef int ElemType;原创 2010-06-30 21:17:00 · 293 阅读 · 0 评论 -
数据结构--计算简单的表达式
<br />表达式的计算主要思路是先将表达式转换为逆波兰式,然后用逆波兰式计算。为了简单的说明逆波兰式是怎么计算的,这里的算术表达式只包含+-*/四种运算,也没有括号,也没有考虑第一个数为负的情况,所以很简单。<br />1.计算逆波兰表达式:输入为一个算术表达式,以=结束,然后计算其逆波兰表达式。想法很简单,定义优先级,*/的优先级要高于+-,建立一个运算符栈。顺序扫描表达式,如果是数的话,输出。如果是运算符,判断当前的操作符和栈顶的操作符的优先级,如果当前运算符的优先级大于栈顶运算符的优先级,将当前运算原创 2010-07-01 12:34:00 · 640 阅读 · 0 评论 -
数据结构--队列
<br />队列是数据结构中最基本的结构之一,简单,但是很实用。在实现中可以用链表或者数组,用链表实现可以动态增长,存储容量大,但是访问速度相对于数组比较慢;用数组实现队列实现简单,但是数组的大小是固定的,无法进行动态增长。<br /> 用数组实现队列一般都将队列实现为循环队列,这样可以充分利用数组的空间。下面是一种队列的实现:<br />#include <stdio.h>#include <stdlib.h>#define QUEUE_SIZE 100typedef int E原创 2010-07-01 20:19:00 · 346 阅读 · 0 评论