数据结构
文章平均质量分 55
徐诚武
小白
展开
-
栈的运用(算数表达式求值的算符优先算法 十以内简单版)
假定运算符有加(+),减(-),乘(*),除(/)),操作数限制为一位数,圆括号看作分界符。中缀表达式 a*b+c a+b*c a+(b*c+d)/e 后缀表达式(RPN) ab*c+ abc*+ abc*d+e/+中缀表达式:设两个栈, 操作数栈(opnd)和运算符栈(optr)按以下规则进行:原创 2016-03-28 20:57:55 · 5853 阅读 · 6 评论 -
数据结构实验报告1
1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。typedef int Elemtype;typedef struct node{ Elemtype data; struct node *next;} Node,*LinkList;LinkList Createlist()//构建先进后出链表;{ LinkList L,p; L=(Li原创 2016-05-03 20:34:27 · 3057 阅读 · 2 评论 -
栈的运用(十进制转换八进制,括号匹配问题)
十进制转换八进制:#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>using namespace std;typedef struct node{ int data; struct node *next;} Node,*LinkList;LinkList Createzha原创 2016-03-24 20:16:41 · 802 阅读 · 0 评论 -
链表的基本操作
构建链表后基本的一些操作#include <iostream>#include <cstdio>#include <cstdlib>#define MaxSize 10using namespace std;typedef struct node{ int data; struct node *next;} Node,*LinkList;LinkList Createl原创 2016-03-20 19:28:26 · 318 阅读 · 0 评论 -
数据结构2
1.已知顺序表L中的数据类型为整型。设计算法将其调整为左右两部分,左边的元素(即排在前面的)均为奇数,右边所有元素(即排在后面的)均为偶数,并要求算法的时间复杂度为O(n),空间复杂度为O(1)。 2、写一算法,从顺序表中删除自第i个元素开始的k个元素。 3、已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n),空间复杂度为O(1)的算法,删除线性表中所有值为item的数据元素。原创 2016-03-27 15:11:12 · 1569 阅读 · 0 评论 -
数据结构1
1、在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。 2、假设有一个单循环链表,其结点含有三个域pre、data、link。其中data为数据域;pre为指针域,他的值为空指针;link为指针域,他指向后继结点。请设计算法,将此表改成双向循环链表。 3、设head是带头结点的单链表的头指针,试写算法,按递增次序输出单链表中各原创 2016-03-27 15:02:52 · 636 阅读 · 0 评论 -
单向链表的创建与遍历(先进先出和先进后出)
先进先出:输入任意一串不为零的数,并建立和前一方向不同的单向链表,并按照先进先出的原则依次输出。#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;typedef struct node{ int data; struct node *next;}NODE,*LinkList;原创 2016-03-12 19:12:23 · 4258 阅读 · 1 评论 -
数据结构3
栈和队列 1、设计算法将中缀表达式转换为后缀表达式,并对后缀表达式求值。 2、请利用两个栈S1和S2来模拟一个队列。已知栈的三个操作定义如下:PUSH(ST,x),元素x入栈ST,POP(ST,X),ST栈顶元素出栈并赋给变量x;Sempty(ST),判断ST栈是否为空。那么利用栈的操作来实现该队列的三个操作:EnQueue,插入一个元素入队;DeQueue,删除一个元素出队;QueueEmpt原创 2016-04-02 11:55:25 · 425 阅读 · 0 评论 -
循环队列 输出杨辉三角
主要在于travelQueue函数的编写,一看应该就会明白#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#define MAXQSIZE 100using namespace std;typedef struct node{ int *data; int front,rear原创 2016-04-01 23:53:17 · 6714 阅读 · 0 评论 -
循环队列的基本操作
队列的顺序表示和实现#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#define MAXQSIZE 100using namespace std;typedef struct node{ int *data; int front,rear;} SqQueue;bool I原创 2016-04-01 21:26:31 · 1096 阅读 · 0 评论 -
链队列的基本操作
用链表表示的队列简称为链队列。一个链队列显然需要分别指示队头和队尾的两个指针。#include #include #include #include using namespace std;typedef struct node{ int data; struct node *next;} Node,*LinkQueue;//链队结点的类型及指针typ原创 2016-04-01 18:55:37 · 1746 阅读 · 0 评论 -
栈的运用(中缀表达式转换为后缀表达式,并对后缀表达式求值。)
中缀表达式转换成后缀表达式的基本思想: 顺序扫描中缀表达式: 若读入的是一个运算分量,则输出; 若读入的是一个左括号,则入栈,栈中左括号的优先级被视为比任何操作符都低。 若读入的是一个操作符(如 + 或 -),其级别比栈顶元素级别高,则入栈,否则,栈顶元素出栈,输出。 若读入的是右括号,栈中元素出栈,输出,直到碰到左括号,左括号出栈,但不输原创 2016-03-31 10:13:25 · 3091 阅读 · 0 评论 -
数据结构实验报告2
1.采用链式存储实现栈的初始化、入栈、出栈操作。typedef struct node{ int data; struct node *next;} Node,*LinkList;LinkList Createzhan()//创建栈{ LinkList top; top=NULL; return top;}bool StackEmpty(Link原创 2016-05-03 20:36:26 · 1190 阅读 · 0 评论