数据结构
liutong1995
这个作者很懒,什么都没留下…
展开
-
用数组实现堆栈顺序存储
堆栈的顺序存储结构通常由两部分组成,一个一维数组,一个记录栈顶元素位置的变量组成。指示栈顶位置,自然,这个值就是数组的下标了,因此,有一个元素时,数组元素的下标为0,数组元素为空时,栈顶指针为-1。定义堆栈:#define MaxSize typedef struct{ElementType Data[MaxSize];int top;//栈顶指针}Stack;堆原创 2017-05-13 21:46:40 · 1473 阅读 · 0 评论 -
用一个数组实现两个堆栈,最大地使用数组的空间,只要有空间就能入栈成功
使两个堆栈分别在数组的两端作为开始:有一个标记,用来区分是哪一个堆栈,Tag。另外,对于两个堆栈的栈顶,其中一个开始是是0.另外一个初始值就是MaxSize-1了。所以判断这两个堆栈为空的方法分别为:指向-1和指向MaxSize 这两个是我们自己定义的,就是这样,没有原因#define MaxSize struct DStack{ElementType Data[MaxSize原创 2017-05-13 22:24:23 · 777 阅读 · 0 评论 -
中缀表达式如何转为后缀表达式
原则:从头到尾读取表达式中每个对象,对不同对象按不同的情况处理:1)运算数:直接输出2)左括号:压入堆栈3)右括号:将栈顶的运算符弹出并输出,直到遇到左括号,两者出栈,不输出。4)运算符:若优先级大于栈顶运算符,则把它压栈。若优先级小于/等于栈顶运算符时,将栈顶运算符弹出并输出;再比较新的栈顶元素符,直到该运算符大于该栈顶运算符,然后将运算符压栈/5)若对个对象处理完毕原创 2017-05-17 21:55:17 · 366 阅读 · 0 评论 -
选择排序算法
选择排序算法的原理在于:将序列看做一个已经排序的序列和一个未排序的序列,每次遍历的当前元素,都是无序序列的第一个元素,将它和序列中最小的值进行交换,这样就是在遍历位置上这个数,就是已经排好的数、int SelectSort(int a[],int n){ int temp = 0; int minIndex = 0; if(a == nullptr) return 0; for(int i = ...转载 2018-04-20 10:08:19 · 160 阅读 · 0 评论