Microsoft PowerPoint - 4.pptx

Size: px
Start display at page:

Download "Microsoft PowerPoint - 4.pptx"

Transcription

1 第 4 章栈和队列 运算受限的线性表 栈 表达式求值 搜索与回溯 队列 队列的应用

2 4.1 栈 只在称为栈顶 (top) 的一端插入和删除的线性表 另一端称为栈底 (bottom) 数据通过栈的顺序 后进先出 (LIFO) top bottom a n-1 a n-2 a 0

3 栈的抽象数据类型 class Stack { public: Stack ( ) { ; ~Stack ( ) { ; int push (char x); int pop (char* px); bool isempty ( ); bool isfull ( );

4 用数组实现栈 template <class Type> class Stack { private: Type *stk; // 栈元素数组 int top; // 栈顶指针 int MAXN; // 栈最大容量 public: Stack (int size) { MAXN = size; stk = new Type[MAXN]; top = -1; // 构造函数 ~Stack ( ) { delete stk; int push (Type x) { // 进栈 if(top >= MAXN 1) return 1; // 栈满, 进栈失败 stk [++top] = x; return 0; int pop (Type* px) { // 出栈 if(top == -1) return 1; *px = stk [top -- ]; return 0; Type gettop () { // 取栈顶 if(top == -1) return NULL; return stk [top]; int isempty ( ) const { return top == -1; int isfull ( ) const { return top == MAXN 1 ;

5 两个栈共用一个栈空间 为避免栈满时溢出, 需为栈设立一个足够大的空间 如果栈中实际只有几个元素, 是一种浪费 当要两个栈时, 可定义一足够大的空间 两个栈的栈顶都向空间伸展, 直到两个栈的栈顶相遇, 发生溢出 一个栈可能进栈元素多而体积大些, 另一个则可能小些 两个栈互相调剂, 灵活性强

6 程序 4-2 DoubleStack 类的定义 template <class Type> class DoubleStack { private: int MAXN; Type *space ; int t[2], b[2]; // 设立栈顶和栈底指针数组 t[2] 和 b[2] public: DoubleStack() { t[0] = b[0] = -1; MAXN = 50; t[1] = b[1] = MAXN; space=new Type[MAXN]; ~DoubleStack() { delete [MAXN] space; int Push (Type x, int i) { if ( t[0]+1 == t[1] ) return 0; // 栈满条件 :t[0]+1 == t[1], 栈顶指针相遇 if ( i == 0 ) t[0]++; else t[1]--; space[t[i]] = x; return 1; int Pop (Type *px, int i) { if ( t[i] == b[i] ) return 0; // 栈空条件 :t[0] = b[0] 或 t[1] = b[1] *px = space[t[i]]; if ( i == 0 ) t[0]--; else t[1]++; return 1;

7 链式栈 如果多个栈共享同一个空间, 可能有的栈占用空间多, 很快就产生溢出, 其它栈可能还有空闲空间 通过移动某些栈为较满的栈腾出空间的调整代价较高 链式栈是一个更好的选择 链式栈只要内存有空间就可扩充 ; 链式栈的栈顶设在链头 ;

8 程序 4-3 LStack 类的定义 template <class Type> struct Node { Type data; Node<Type> *link; ; template <class Type> class LStack { private: Node<Type> *top; public: LStack () { top = NULL; void push(type x) { Node<Type> *p; P = new Node<Type>; p->data = x; p->link = top; top = p; int pop(type *x) { Node<Type> *p; if(top == NULL) return 1; *x = top->data; p=top; top = top->link; delete p; return 0; ~LStack ( ) { while ( top!= NULL ) {Node<Type>*p = top; top = top->link; delete p;

9 栈的应用 表达式求值 一个表达式由操作数 操作符和分界符组成 算术表达式有三种表示 : 中缀 (infix) 表示 < 操作数 > < 操作符 > < 操作数 >, 如 A+B; 前缀 (prefix) 表示 < 操作符 > < 操作数 > < 操作数 >, 如 +AB; 后缀 (postfix) 表示 < 操作数 > < 操作数 > < 操作符 >, 如 AB+;

10 表达式示例 中缀表达式 a + b * c - d / e * f 后缀表达式 a b c * + d e / f * - 中缀表达式中相邻两个操作符的计算次序依赖于操作符的优先级和括号 : 优先级高的先计算 ; 优先级相同的自左向右计算 ; 括号从最内层开始计算

11 后缀表达式的计算 从左向右处理表达式, 用一个栈暂存遇到的操作数或计算结果 后缀表达式已体现了加括号的效果, 因此后缀表达式不包含括号 中缀表达式 a + b *(c- d ) - e / f 后缀表达式 abcd- *+ef/ - rst1 rst2 rst3 rst6 rst4 rst5

12 后缀表达式的处理过程 顺序逐项扫描表达式, 根据遇到的项的类型 : 该项是操作数, 则该项入栈 ; 该项是双目操作符, 则连续从栈中退出两个操作数, 计算后将结果入栈 ; 当处理完表达式的所有项后, 栈中应该只有一项内容, 就是表达式的计算结果

13 程序 4-4 Expression 类的定义 class Expression { public: Expression (char *posexpression,int *val) { pos_e = posexpression; v = val; ~Expression ( ) { int evaluate(int *p_y) { int i, j, k, x, y, z; Stack<int> s(100); char c; i = 0; c = pos_e[0]; while(c!='\0') { if(islower(c)) s.push(v[c-'a']); else switch (c) { case '+' : s.pop(&x); s.pop(&y); s.push(x+y); break; case '-' : s.pop(&x); s.pop(&y); s.push(y-x); break; case '* : s.pop(&x); s.pop(&y); s.push(x*y); break; case '/ : s.pop(&x); s.pop(&y); s.push(y/x); break; case '^ : s.pop(&x); s.pop(&y); if(y==0) return 1; if(x==0) s.push(1); else { if(x>0) j = x; else j = -x; for(z=1, k = 1; k<=j; k++) z* = y; if(x<0) z = 1/z; s.push(z); break; default: return 1; c = pos_e[++i]; s.pop(p_y); if(s.isempty()) return 0; else return 1;

14 用栈将中缀表示转为后缀表示 用栈可将中缀表达式转换成对应的后缀表达式 为实现这种转换, 需考虑操作符的优先级 字符 ^ *, /, % +, - ( $ 栈中优先级 栈外优先级

15 中缀表达式转换为后缀表达式的算法 操作符栈初始化, 将结束符 $ 进栈 然后读入中缀表达式字符流的首字符 重复读入下一字符 ch, 直到遇到 \0 若 ch 是操作数直接输出, 读入下一个字符 若 ch 是 (, 则入栈 若 ch 是运算符 ( +, -, *, /, ^ ), 则将它的 ( 进栈前 ) 优先级别与栈顶字符的 ( 栈中 ) 优先级别进行比较 如果当前的运算符的优先级别小于等于栈顶字符的优先级别, 那么退出栈顶字符并输出 这样的过程一直进行到当前的运算符的优先级别大于栈顶字符的为止, 然后让当前的运算符进栈 若当前的字符是 ), 则从栈中依次退出运算符并输出, 直到 ( 为止, 然后退出 (, 但不输出 ( 若当前的字符是 \0, 则从栈中依次退出所有运算符并输出, 直到 $ 为止, $ 不退栈, 也不输出

16 图 4-5 中缀表达式转换成等价后 缀表达式的处理过程 中缀表达式 :(a+b*c)^d^(e*f/g)-h*i

17 程序 4-5 Mid2Pos 类的定义 class Mid2Pos { public: int icp(char c) { switch (c) { case '^' : return 4; case '*': case '/': return 2; case '+': case '-': return 1; int isp(char c){ switch (c) { case '^': return 3; case '*': case '/': return 2; case '+': case '-' : return 1; case '(' : return 0; case '$' : return -1; int mid_to_pos(char mid_e[], char pos_e[]) { Stack<char>; s(100) char c; int i, j; j = 0; i = 0; c = mid_e[0]; s.push('$'); while(c!='\0 ) { if(islower(c)) pos_e[j++] = c; else switch (c) { case '+' : case '-' : case '*' : case '/' : case '^' : while(icp(c) <= isp(s.gettop())) s.pop(&(pos_e[j++])); s.push(c); break; case '(' : s.push( c ); break; case ')' : while((*(s.gettop()))!= '(') s.pop(&(pos_e[j++])); break; default: return 1; c = mid_e[++i ]; while(s.pop(&pos_e[j++])== 0); pos_e[j-2] = '\0'; return 0;

18 用栈求解迷宫问题 在给定的迷宫中找出一条从入口到出口的路径

19 迷宫的表示 迷宫可用矩阵 ( 二维数组 ) maze[m+2][n+2] 表示 maze[i][j] 为 1 表示该位置是墙壁, 不通 ; maze[i][j] 为 0 表示该位置是通路 ; 1 i m, 1 j n 数组的第 0 行和第 m+1 行 第 0 列和第 n+1 列是迷宫的围墙

20 用二维数组表示的迷宫 入口 出口 在迷宫中任一时刻的位置可用数组下标 i 与 j 来表示

21 8 个可能的前进方向 西北 [i-1][j-1] 西 [i][j-1] [i+1][j-1] 西南 北 [i-1][j] X [i][j] [i+1][j] 南 东北 [i-1][j+1] [i][j+1] 东 [i+1][j+1] 东南 用前进方向表来表示这 8 个可能的前进方向

22 前进方向表 move[q].dir move[q].a move[q].b 北 -1 0 东北 -1 1 东 0 1 东南 1 1 南 1 0 西南 1-1 西 0-1 西北 -1-1 例如当在 [i][j] 时, 若向东北方向走, 下一相邻位置 [g][h] 为 : g = i+move[1].a = i-1; h = j+move[1].b = j+1;

23 用栈来存储在试探的过程 用栈存储在试探的过程中所走过的路径 一旦需要回退, 可以根据栈中保存的记录进行回溯, 再尝试其它允许方向 如果栈空, 则表示已回退到最初出发位置 栈中数据用三元组表示 : struct items { int x, y, d;

24 标志矩阵 mark 防止走重复路 int mark[m+2][n+2] 其中所有元素都初始化为 0 标志矩阵的含义 mark[i][j] 为 1 表示该位置已走过 ; mark[i][j] 为 0 表示该位置尚未走过

25 迷宫问题的算法 (1) 程序 4-6 #define MAX 50 typedef struct element {int x, y, d; Element; typedef struct move {int a, b; MOVE; Stack <Element> s(max*max); class Maze { int maze[max][max]; int mark[max][max]; MOVE mv[8];

26 迷宫问题的算法 (2) public: int m,n; Maze() { cout << "input m and n of the maze" << endl; cout << "m = "; cin >> m; cout << "n = "; cin >> n;

27 迷宫问题的算法 (3) void setmove( ) { mv[0].a = -1; mv[0].b = 0; mv[1].a = -1; mv[1].b = 1; mv[2].a = 0; mv[2].b = 1; mv[3].a = 1; mv[3].b = 1; mv[4].a = 1; mv[4].b = 0; mv[5].a = 1; mv[5].b = -1; mv[6].a = 0; mv[6].b = -1; mv[7].a = -1; mv[7].b = -1;

28 迷宫问题的算法 (4) void inputmaze ( ) { int i, j; cout<<"input maze: "<<endl; for(i=0;i<=m+1;i++) for(j=0; j<=n+1;j++) maze[i][j] = 1; for(i=1;i<=m;i++) { for(j=1; j<=n;j++) cin >> maze[i][j]; cout << endl; // 换行

29 迷宫问题的算法 (5) void outputmaze ( ){ int i, j; cout<<"output maze : "<<endl; for(i=0; i<=m+1; i++) { for(j=0; j<=n+1; j++) cout<<maze[i][j]<< " "; cout<<endl;

30 迷宫问题的算法 (6) void setmark( ) { int i, j; for(i=0; i<=m+1; i++) for(j=0; j<=n+1; j++) mark[i][j] = 0;

31 迷宫问题的算法 (7) int getmazepath ( ) { int i, j, k, g, h, t; Element current; if(maze[1][1]!=0 maze[m][n]!=0) return 1; current.x = 1; current.y = 1; current.d = 1; s.push(current); mark[1][1] = 1; while(!s.isempty() ) { s.pop(&current); i = current.x; j = current.y; k = current.d; while(k<7) { g = i + mv[++k].a; h = j + mv[k].b; if(g==m && h==n) { cout<<"path in maze : "<<endl; cout<< i<<" "<<j<<" "<<k<<" "; while(!s.isempty() ) { s.pop(&current); cout<<current.x<<" "<<current.y<<" "<<current.d<<" "; return 0; if(maze[g][h] == 0 && mark[g][h] == 0) { mark[g][h] = 1; current.x = i; current.y = j; current.d = k; s.push(current); i = g; j = h; k = -1; return 1;

32 4.2 队列 (Queue ) front q 0 q 1 q 2 q n-1 rear 定义 : 队列是一种先进先出 (FIFO, First In First Out) 的线性表 只允许在一端删除, 允许删除的一端叫做队头 (front) 只允许在另一端插入, 允许插入的一端叫做队尾 (rear)

33 程序 4-7 Queue 类的定义 template <class T> class Queue { public: Queue ( ) {; // 构造函数 ~Queue ( ) {; // 析构函数 virtual int enqueue (const T& x) = 0; // 进队 virtual int dequeue (T& x) = 0; // 出队

34 4.2.2 用数组实现队列 front rear 空队列 A B front rear B 进队 B C D front rear A 退队 C D E F G front rear E,F,G 进队 A front rear A 进队 A B C D front rear C, D 进队 C D front rear B 退队 C D E F G front rear H 进队, 溢出

35 队列的进队和出队原则 进队时队尾指针先进一 rear = rear + 1, 再将新元素按 rear 指示位置加入 队尾指针指示实际队尾 队列非空时可出队, 出队时队头指针先进一 front = front + 1, 再将下标为 front 的元素取出 队头指针指示实际队头的前一位置 队空时,front == rear 队满时 (rear == maxsize), 再进队将溢出, 但这可能是假溢出, 因为前端可能有空间 ; 解决办法之一 : 将队列元素存放数组首尾相接, 形成循环 ( 环形 ) 队列

36 循环队列 (Circular Queue) 存放队列的数组作为首尾相连的表 队列操作时要配合取模 ( 余数 ) 运算 出队 : front = (front+1) % size; 进队 : rear = (rear+1) % size; 队列初始化 :front = rear = 0; 队空条件 :front == rear; 队满条件 :(rear+1) % size == front

37 rear 6 7 front 6 7 front 6 7 front Rear A 1 4 rear rear 3 C 2 A B 空队列 A 进队 B, C 进队 C 2 A 退队 B front rear C 2 B 退队 0 1 front F G H I E D C 3 2 队满 front rear

38 程序 4-8 CircleQueue 类的定义 template <class Type > class CircleQueue { private: Type *q; int front, rear, size; public: CircleQueue(int maxsize) { size = maxsize; q = new Type[size]; front = 0, rear = 0; ~CircleQueue() { delete [size]q; int enqueue(type x) // 结点 x 进队 { rear = (rear + 1) % size; if(rear ==front) { if(rear == 0) rear = size - 1; else rear--; return 1; // 队满, 不能进队, 返回 1 q[rear] = x; return 0; int dequeue(type* py) { if(front == rear) return 1; // 队空不能出队 front = (front + 1) % size; *py = q[front]; return 0;

39 说明 在到达队满状态时, 实际还有一个空闲存储单元 如果不想让这个单元空闲, 则队满和队空的状态都是 front == rear 为了区别, 就需要加一个标志, 当 front == rear 时, 根据这个标志判断队列是满还是空 但这增加了计算工作, 在频繁使用的队列中一般不提倡使用

40 程序 4-9 带标记的循环队列的进队和出队操作 ( 略 )

41 双向队列 允许在两端进行插入和删除的线性表称为双向队列 双向队列没有队首和队尾之分, 可用两个指针 left 和 right 分别指向双向队列中左端和右端结点 双向队列空的标志为 left>right 为了使得左右两端在一开始都能进行插入, 取中间位置 m = (MAXN 1)/2, 并置 left = m + 1, right = m 作为双向队列的初始状态 左端满的标志为 left = 0; 右端满的标志为 right = MAXN 1 在一端满而另一端不满的情况下, 为了使得在满的一端能插入新结点, 可以把整个队列向不满的一端移动 如要避免整个队列的移动, 还可把存放双向队列的数组首尾元素连接起来, 构成环形双向队列 如固定一端不动, 插入和删除都在另一端进行, 这样的双向队列就是一个栈 ; 如果双向队列一端可以进行插入和删除, 而另一端只能进行删除, 这样的双向队列称为限制输入的双向队列 ; 如果双向队列一端可以进行插入和删除, 而另一端只能进行插入, 这样的双向队列称为限制输出的双向队列

42 队列的链接存储表示 链式队列 front rear 队头在链头, 队尾在链尾 进队时只要内存有空间就无队满问题 操作时要检查队空, 队空条件为 front == NULL

43 程序 4-10 用链表实现的队列的 类定义 template <class Type> struct node { Type data; struct node *link; template <class Type> class LinkedQueue { typedef node<type> NODE; private: NODE *head, *tail; public: LinkedQueue() { head = tail = NULL; void enqueue(type x) { NODE *p; p = new NODE(); p->data = x; p->link = NULL; if(head == NULL) head = p; else tail->link = p; tail = p; int dequeue(type *py) { NODE *p; if(head == NULL) return 1; *py = head->data; p = head; head = head->link; delete p; return 0;

44 优先级队列 优先级队列 : 每次选择队列中具有最高优先级的元素出队 常用于各种形式的调度 优先级一般用数字表示, 数字越小, 优先级越高 最高优先级的元素同时有多个时, 按它们在队列中的先后顺序出队 例 : 优先级及出队顺序 编号 优先级 出队顺序

45 优先级队列的定义 template <class T> class PrQueue { protected: T *elements; // 存放数组, 内容为元素优先级 int count; // 队列元素计数 int maxsize; // 最大元素个数 public: PrQueue (int sz) : maxsize(sz), count(0){ elements = new T[maxSize]; ; // 构造函数 ~PrQueue ( ) {delete [] elements; ; // 析构函数 virtual int enqueue (const T& x); // 进队 virtual int dequeue (T& x) ; // 出队

46 优先级队列的存储表示和实现 template <class T> bool PrQueue<T> :: enqueue (const T& x){ if( count == maxsize) return false; // 队满 for ( int j = count-1; j >= 0; j-- ) // 向前找插入位 if ( elements[j] <= x ) break; else elements[j+1] = elements[j]; elements[j+1] = x; count++;

47 template <class T> bool PrQueue<T> :: dequeue (T& x) { if ( count == 0 ) return false; x = elements[0]; // 取出 0 号元素 for ( int i = 1; i < count; i++ ) elements[i-1] = elements[i]; // 整个队列前移填补空位 count--; return true;

48 队列应用 队列有广泛的应用 前面的迷宫问题就可用队列代替栈求解 后面的树 图的广度遍历中也需要用到队列 以下利用队列打印杨辉 3 角形的例子来自殷人昆的数据结构

49 队列应用举例 逐行打印二项展开式 (a + b) i 的系数 杨辉三角形 (Pascal s triangle) 1 1 i =

50 分析第 i 行元素与第 i+1 行元素的关系 s i = t s+t i = 3 i = 从前一行的数据可以计算下一行的数据

51 从第 i 行数据计算并存放第 i+1 行数据 s=0t=1 t=2 t=1 t=0 t=1 t=3 t=3 t=1 t=0 t=1 s+t s=t s=t s=t s=t s=t s=t s=t s=t s+t s+t s+t s+t s+t s+t s+t s+t

52 利用队列打印二项展开式系数的程序 #include <stdio.h> #include <iostream.h> #include "queue.h" void YANGHVI ( int n ) { Queue q(n+1); // 队列初始化 int i = 1, j, s = k = 0, t, u; q.enqueue (i); q.enqueue (i); for ( i = 1; i <= n; i++ ) { // 逐行计算 cout << endl; q.enqueue (k); for ( j = 1; j <= i+2; j++ ) { // 下一行 q.dequeue (t); u = s + t; q.enqueue (u); s = t; if ( j!= i+2 ) cout << s << ' ';

53 小结 栈 表达式求值 搜索与回溯 队列 普通队列 双端队列 优先级队列

54 进阶导读 介绍了 STL 中的 栈 和 队列 的实现 接口定义与传统教科书上的有些差异 思考 :STL 中为什么这样设计? 有什么好处?

ebook39-5

ebook39-5 5 3 last-in-first-out, LIFO 3-1 L i n e a r L i s t 3-8 C h a i n 3 3. 8. 3 C + + 5.1 [ ] s t a c k t o p b o t t o m 5-1a 5-1a E D 5-1b 5-1b E E 5-1a 5-1b 5-1c E t o p D t o p D C C B B B t o p A b o

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 三 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg 第 3 章栈与队列 栈 栈的应用 递归到非递归的转换 队列 2 栈 (Stack) 操作受限的线性表 运算只在表的一端进行 队列 (Queue) 运算只在表的两端进行

More information

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n

More information

Microsoft PowerPoint - ch3.pptx

Microsoft PowerPoint - ch3.pptx 第 3 章栈和队列 第 3 章栈和队列 3.1 栈 3.2 栈的应用举例 3.3 队列 哈尔滨工业大学 ( 威海 ) 计算机科学与技术学院 (2014/2015 学年秋季版 ) 1 本章重点难点 第 3 章栈和队列 重点 : (1) 栈 队列的定义 特点 性质和应用 ;(2)AT 栈 AT 队列的设计和实现以及基本操作及相关算法 难点 : (1) 循环队列中对边界条件的处理 ;(2) 分析栈和队列在表达式求值

More information

Microsoft PowerPoint - Slides04_第三章(1) 栈.ppt [兼容模式]

Microsoft PowerPoint - Slides04_第三章(1) 栈.ppt [兼容模式] 第三章栈 队列 数组 栈 (Stack) 基本概念 顺序存储结构 链式存储结构 应用 队列 (Queue) 基本概念 顺序存储结构 链式存储结构 应用 特殊矩阵 (Matrix) 的压缩存储 栈 ( Stack ) 只允许在一端插入和删除的线性表 允许插入和删除的一端称为栈顶 (top), 另一端称为栈底 (bottom) 退栈 (pop) 进栈 (push) 特点后进先出 (LIFO) bottom

More information

ebook39-6

ebook39-6 6 first-in-first-out, FIFO L i n e a r L i s t 3-1 C h a i n 3-8 5. 5. 3 F I F O L I F O 5. 5. 6 5. 5. 6.1 [ ] q u e n e ( r e a r ) ( f r o n t 6-1a A 6-1b 6-1b D C D 6-1c a) b) c) 6-1 F I F O L I F ADT

More information

Microsoft PowerPoint - Lecture3.ppt

Microsoft PowerPoint - Lecture3.ppt Chap 4. Links, Stacks and Queue 1 Lists A list is a finite, ordered sequence of data items. Important concept: List elements have a position. Notation: What operations should we implement?

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

PowerPoint Presentation

PowerPoint Presentation 第 章 栈与队列 本章主题 : 栈和队列的应用 教学目的 : 掌握栈和队列的应用方法, 理解栈的重要作用 教学重点 : 利用栈实现行编辑, 利用栈实现表达式求值 教学难点 : 利用栈实现表达式求值 2011-10-18 1 .1 ADT 栈 ( 定义和运算 ) 1.. 栈的定义 栈 stack 是一种特殊的 ( 有序表 ) 线性表, 插入 或删除栈元素的运算只能在表的一端进行, 称运算 的一端为栈顶,

More information

40 第二部分试题部分 9. 假设栈初始为空, 将中缀表达式 a/b+(c*d-e*f)/g 转换为等价的后缀表达式的过程中, 当扫描 到 f 时, 栈中的元素依次是 ( ) 2014 年全国试题 2(2) 分 A. +(*- B. +(-* C. /+(*-* D. /+-* 10. 循环队列存放

40 第二部分试题部分 9. 假设栈初始为空, 将中缀表达式 a/b+(c*d-e*f)/g 转换为等价的后缀表达式的过程中, 当扫描 到 f 时, 栈中的元素依次是 ( ) 2014 年全国试题 2(2) 分 A. +(*- B. +(-* C. /+(*-* D. /+-* 10. 循环队列存放 第 3 章栈和队列 39 第 3 章 栈和队列 一 选择题 1. 为解决计算机主机与打印机之间速度不匹配问题, 通常设置一个打印数据缓冲区, 主机将要 输出的数据依次写入该缓冲区, 而打印机则依次从该缓冲区中取出数据 该缓冲区的逻辑结 构应该是 ( ) 2009 年全国试题 1(2) 分 A. 栈 B. 队列 C. 树 D. 图 2. 设栈 S 和队列 Q 的初始状态均为空, 元素 a, b, c,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

数据结构 Data Structure

数据结构 Data Structure 数据结构 : 线性表 Data Structure 2016 年 3 月 15 日星期二 1 线性表 栈和队列 线性表 字典 ADT 栈 队列 2016 年 3 月 15 日星期二 2 线性表 定义 : 线性表 L 是 n 个数据元素 a 0,a 1, a n-1 的有限序列, 记作 L=(a 0,a 1, a n-1 ) 其中元素个数 n(n 0) 定义为表 L 的长度 当 n=0 时,L 为空表,

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

Chapter12 Derived Classes

Chapter12   Derived Classes 继 承 -- 派 生 类 复 习 1. 有 下 面 类 的 说 明, 有 错 误 的 语 句 是 : class X { A) const int a; B) X(); C) X(int val) {a=2 D) ~X(); 答 案 :C 不 正 确, 应 改 成 X(int val) : a(2) { 2. 下 列 静 态 数 据 成 员 的 特 性 中, 错 误 的 是 A) 说 明 静 态 数

More information

untitled

untitled 1 1.1 1.2 1.3 1.4 1.5 ++ 1.6 ++ 2 BNF 3 4 5 6 7 8 1.2 9 1.2 IF ELSE 10 1.2 11 1.2 12 1.3 Ada, Modula-2 Simula Smalltalk-80 C++, Objected Pascal(Delphi), Java, C#, VB.NET C++: C OOPL Java: C++ OOPL C# C++

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

正文.doc

正文.doc 第 3 章 栈 实验三 3.1 实验目的及要求 1. 理解特殊的线性结构 顺序栈的抽象数据类型的定义, 及其在 C 语言环境中的表示方法 2. 理解顺序栈的基本操作的算法, 及其在 C 语言环境中一些主要基本操作的实现 3. 在 C 语言环境下实现顺序栈的应用操作 : 1 利用栈实现十进制数转换成八进制数 2 利用栈实现一位数的加减乘除的表达式求解 3.2 实验内容 经过对实验目的及要求的分析, 本实验仍然采用首先描述栈的基本操作集函数,

More information

Microsoft PowerPoint - ds-1.ppt [兼容模式]

Microsoft PowerPoint - ds-1.ppt [兼容模式] http://jwc..edu.cn/jxgl/ HomePage/Default.asp 2 说 明 总 学 时 : 72( 学 时 )= 56( 课 时 )+ 16( 实 验 ) 行 课 时 间 : 第 1 ~14 周 周 学 时 : 平 均 每 周 4 学 时 上 机 安 排 待 定 考 试 时 间 : 课 程 束 第 8 11 12 章 的 内 容 为 自 学 内 容 ; 目 录 中 标 有

More information

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

Microsoft PowerPoint - 3栈和队列.ppt [兼容模式]

Microsoft PowerPoint - 3栈和队列.ppt [兼容模式] 队列的类型定义 定义 队列是必须在一端删除 ( 队头 front), 在另一端插入 ( 队尾 rear) 的线性表 特性 先进先出 (FIFO, First In First Out) rear front 117 队列的类型定义 ADT Queue{ 数据对象 : 具有线形关系的一组数据操作 : bool EnQueue(Queue &Q, ElemType e); // 入队 bool DeQueue(Queue

More information

2.3 链表

2.3  链表 数据结构与算法 ( 二 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) https://pkumooc.coursera.org/bdsalgo-001/ 第二章线性表 2.1 线性表 2.2 顺序表 tail head a 0 a 1 a n-1 2.4 顺序表和链表的比较 2 链表 (linked list) 通过指针把它的一串存储结点链接成一个链

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

递归函数的高效实现方法

递归函数的高效实现方法 递归函数的高效实现方法 赵建华 递归函数的适用范围和优缺点 分治法 把一个比较大的问题分解为若干个比较小的问题, 分别求解这些比较小的问题, 再综合得到原问题的解 如果比较小的问题和原问题具有同样的性质, 那么适用递归接法 要求最终能够把问题分解为能够直接解决的简单问题 优点 简洁 能够帮助思考 和问题的结构有对应关系 缺点 效率低下 递归 递归的定义 若一个对象部分地包含它自己, 或用它自己给自己定义,

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

Explain each of the following terms. (12%) (a) O(n 2 ) (b) protected in C++ language (c) sparse matrix 7. Write

Explain each of the following terms. (12%) (a) O(n 2 ) (b) protected in C++ language (c) sparse matrix 7. Write Department of Computer Science and Engineering National Sun Yat-sen University Data Structures - Middle Exam, Nov. 20, 2017 1. Suppose an array is declared as a[5][6][4], where the address of a[0][0][0]

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Strings

Strings Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A

More information

untitled

untitled 1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete

More information

4

4 孙猛 http://www.math.pku.edu.cn/teachers/sunm 2017 年 9 月 28 日 2 栈及其抽象数据类型 栈的实现 栈的应 用 3 基本概念 栈是 一种特殊的线性表, 它所有的插 入和删除都限制在表的同 一端进 行行 表中允许进 行行插 入 删除操作的 一端叫做栈的顶 表的另 一端则叫做栈的底 当栈中没有元素时, 称之为空栈 栈的插 入运算通常称为进栈或 入栈,

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 六 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg 第 6 章树 C 树的定义和基本术语 树的链式存储结构 子结点表 表示方法 静态 左孩子 / 右兄弟 表示法 动态表示法 动态 左孩子 / 右兄弟 表示法 父指针表示法及其在并查集中的应用

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

Microsoft PowerPoint - Ch3 [兼容模式]

Microsoft PowerPoint - Ch3 [兼容模式] Ch.3 栈和队列 1 3.1 栈 定义和运算 栈 仅在表的一端插 删的线性表插入 进 ( 入 ) 栈 删除 出 ( 退 ) 栈 栈顶 插删的一端 栈底 另一端 结构特征 -- 后进先出 修改原则 : 退栈者总是最近入栈者 服务原则 : 后来者先服务 (LIFO 表 ) 例 : 入栈出栈 a n a 2 a 1 2 3.1 栈 Note: 后入栈者先出栈, 但不排除后者未进栈, 先入栈者先出栈 an,,

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf(%d, &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf(% 2013 ( 28 ) ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 10 B 1 C 1 D 5 E 5 F 1 G II 5 H 30 1 2013 C 1 #include 2 int main(void) 3

More information

Microsoft PowerPoint - DS_Ch3_EN [兼容模式]

Microsoft PowerPoint - DS_Ch3_EN [兼容模式] Data Structure Ch.3 Stacks & Queues Dr. He Emil Huang School of Computer Science and Technology Soochow University 苏州大学计算机科学与技术学院网络工程系 本章 ppt 与教材对应情况 本章涉及所有内容涵盖了 Kruse 教材以下章节 Chapter 2 ( 栈,Introduction

More information

1

1 基本練習題 1 答 :(A) 2 答 :(B) 3 答 :(C) 4 答 :(B) 5 答 :(D) 6 答 :2 7 答 :(B) 8 答 : (A) A B C / D E * + F G / - (B) A B + C D - * E / (C) A B C * + E F + - 9 答 : (A) - + A * - / BCDE / F G (B) / * + A B C D E (C)

More information

Microsoft Word - DataStruct-981.doc

Microsoft Word - DataStruct-981.doc 4. 堆疊與佇列 (Stack and Queue) 4. Stak (). 基本觀念 定義 : 當將東西疊成一堆, 而取用的時候由上方來取出 特性 : 先進後出, 後進先出 ( 號球先放, 但 3 號球會先拿出 ) 2 3 3 2 (2). Stack 的運算 基本運算 push: 將資料放入堆疊 pop: 將資料由堆疊最頂端取出一個 TopItem: 位於堆疊中最上面的一個資料 IsEmpty:

More information

untitled

untitled 1 Outline 流 ( ) 流 ( ) 流 ( ) 流 ( ) 流 ( ) 狀 流 ( ) 利 來 行流 if () 立 行 ; else 不 立 行 ; 例 sample2-a1 (1) 列 // 料 Console.Write(""); string name = Console.ReadLine(); Console.WriteLine(" " + name + "!!"); 例 sample2-a1

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2009 年 下 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

Summary

Summary Summary 暑假开始准备转移博客, 试了几个都不怎么满意 ( 我还去试了下 LineBlog 不知道那时候在想 什么 ) 现在暂时转移至 WordPress, 不过还在完善中, 预计 算了不瞎预计的好 课上说最好做个代码集, 嗯嗯我也觉得挺有必要的 毕竟现在我连 Floyd 怎么写都忘了无脑 SPFA_(:з )_ 反正有用没用都稍微写一下, 暂定是目录这些, 有些还在找例题 整理代码什么的,

More information

1

1 基本練習題 1. 答 : 鄰接矩陣 : D E D E 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 5 5 D E D E 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 鄰接串列 : List[] List[] E List[] E List[] D E List[D] E List[E]

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ 考生注意 : 本试卷共七大题, 满分 150 分 考试时间为 3 小时 ; 所有答案均写在答题纸上 ( 注明题号 ), 在此答题一律无效无效 一 选择题 ( 本题共 20 小题, 每小题 2 分, 满分 40 分 ) 1 char ch 1 2 A 0

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Microsoft PowerPoint - Fig03_Stack.ppt [相容模式]

Microsoft PowerPoint - Fig03_Stack.ppt [相容模式] 四 堆疊與佇列 (Stack & Queue) 4-. 串列及鏈結串列 4-. 用陣列結構實作堆疊 4-3. 用鏈結串列實作堆疊 4-4. 堆疊的應用 4-5. 佇列 4-6. 用陣列結構實作佇列 4-7 7. 用鏈結串列實作佇列 堆疊的基本觀念. 定義 : 4- 堆疊 當將東西疊成一堆, 而取用的時候由上方來取出. 特性 : 先進後出, 後進先出 ( 號球先放, 但 3 號球會先拿出 ) 3 3

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 二 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) https://pkumooc.coursera.org/bdsalgo-001/ 第二章 线性表 第二章线性表 2.1 线性表 2.2 顺序表 2.3 链表 {a 0, a 1,, a n 1 } a 0 a 1 a 2 a n-1 tail head a

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 三 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg 第 3 章栈与队列 栈 栈与表达式求值 队列 栈和队列的应用 队列的应用 递归到非递归的转换 ( 补充 ) 2 栈 (Stack) 操作受限的线性表 运算只在表的一端进行

More information

C/C++语言 - 分支结构

C/C++语言 - 分支结构 C/C++ Table of contents 1. if 2. if else 3. 4. 5. 6. continue break 7. switch 1 if if i // colddays.c: # include int main ( void ) { const int FREEZING = 0; float temperature ; int cold_ days

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

第2章 递归与分治策略

第2章  递归与分治策略 : 1. 2. 3. Strassen 4. 5. 6. 7. 8. 9... 2 T(n) = n T(n/2) T(n/2) T(n/2) T(n/2) 3 T(n) = n n/2 n/2 n/2 n/2 T(n/4)T(n/4)T(n/4)T(n/4) T(n/4)T(n/4)T(n/4)T(n/4) T(n/4)T(n/4)T(n/4)T(n/4) T(n/4)T(n/4)T(n/4)T(n/4

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2 第 六 讲 指 针 与 字 符 串 1 内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2 指 针 什 么 是 指 针 指 针 的 定 义 与 运 算 指 针 与 一 维 数 组 指 针 数 组 行 指 针 与 二 维 数 组 指 针 与 引 用 指 针 与 函 数 3 指 针 定 义 什 么 是 指 针 指 针 变 量, 简 称 指 针, 用 来 存 放

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 数据结构与算法 ( 五 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg 第五章 的概念 的抽象数据类型 深度优先搜索 宽度优先搜索 的存储结构 D B A E G C H F I 二叉搜索树 堆与优先队列 Huffman 树及其应用 2 5.2

More information

大侠素材铺

大侠素材铺 编译原理与技术 语法制导翻译 Ⅱ 计算机科学与技术学院 李诚 22/10/2018 Announcement Tutorial on Thursday (25/10/2018) 3B201, Class time Assignment review Q & A Cheng @ Compiler Fall 2018, USTC 2 主要内容 源程序 词法分析器 token 语法分析器 分析树 语义分析

More information

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.

More information

ebook39-13

ebook39-13 1 3 13 ~ 17 13.1 optimizatio problem c o s t r a i t optimizatio fuctio feasible solutio optimal solutio 13-1 [ ] 1 i s i i a i i t i i= 1 x i x 1 i i s i x i x i =t 0 x i a i i=1 a i < t i= 1 406 / t

More information

4-2 1. 使 用 一 般 佇 列 存 放 資 料 時, 當 前 端 (Front) 尚 有 空 位 時, 再 加 入 元 素, 卻 發 現 此 佇 列 已 滿, 請 問 此 時 使 用 下 列 那 一 個 方 法 較 佳? (A) 優 先 佇 列 (B) 環 形 佇 列 (C) 雙 向 佇 列

4-2 1. 使 用 一 般 佇 列 存 放 資 料 時, 當 前 端 (Front) 尚 有 空 位 時, 再 加 入 元 素, 卻 發 現 此 佇 列 已 滿, 請 問 此 時 使 用 下 列 那 一 個 方 法 較 佳? (A) 優 先 佇 列 (B) 環 形 佇 列 (C) 雙 向 佇 列 CHAPTER 4 隨 書 光 碟 4-1 4-3 環 形 佇 列 由 於 佇 列 有 一 個 問 題, 就 是 前 端 (Front) 尚 有 空 位 時, 再 加 入 元 素, 卻 發 現 此 佇 列 已 滿 此 時 的 解 決 方 法 就 是 使 用 環 形 佇 列 (Circular Queue) 定 義 是 指 一 種 環 形 結 構 的 佇 列 作 法 將 一 維 陣 列 的 第 0 個

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F 1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 函數樣板 (Function Template) 與 類別樣板 (Class Template) 講師 : 洪安 1 資料結構與 C++ 程式設計進階班 為何需要通用函數? (1/2) int abs(int x) { return (x>0)?x:-x; 取名困難不好記 float fabs(float x) { return (x>0)?x:-x; complex cabs(complex x)

More information

!! " ! " " # # # $ # " # # " # " " " " " " " %& "! %& %& " %& # " # " # " # " # " #" # " # # # ( # # # #! # # # # # # #! !! # # # # # # # # # # " " " " " !! # # # " " " # " # # # " " ! " # # " "

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不 1. 右 側 程 式 正 確 的 輸 出 應 該 如 下 : * *** ***** ******* ********* 在 不 修 改 右 側 程 式 之 第 4 行 及 第 7 行 程 式 碼 的 前 提 下, 最 少 需 修 改 幾 行 程 式 碼 以 得 到 正 確 輸 出? (A) 1 (B) 2 (C) 3 (D) 4 1 int k = 4; 2 int m = 1; 3 for (int

More information

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769 立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769 前 言 在 计 算 机 统 考 的 四 门 专 业 课 中, 最 难 拿 高 分 的 就 是 数 据 结 构 但 是 这 门 课 本 身 的 难 度 并 不 是 考 生 最 大 的 障 碍, 真 正 的 障 碍

More information

生成word文档

生成word文档 希赛网, 专注于软考 PMP 通信考试的专业 IT 知识库和在线教育平台 希赛网在线题库, 提供历年考试真题 模拟试题 章节练习 知识点练习 错题本练习等在线做题服务, 更有能力评估报告, 让你告别盲目做题, 针对性地攻破自己的薄弱点, 更高效的备考 希赛网官网 :http://www.educity.cn/ 希赛网软件水平考试网 :http://www.educity.cn/rk/ 希赛网在线题库

More information

Microsoft Word - 97.01.30軟體設計第二部份範例試題_C++_ _1_.doc

Microsoft Word - 97.01.30軟體設計第二部份範例試題_C++_ _1_.doc 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 範 例 試 題 (C++) 試 題 編 號 :11900-920201-4 審 定 日 期 : 94 年 7 月 1 日 修 訂 日 期 : 96 年 2 月 1 日 97 年 1 月 30 日 ( 第 二 部 份 ) 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 參 考 資 料 壹 試

More information

Microsoft PowerPoint - Slides03_第二章 线性表.ppt [兼容模式]

Microsoft PowerPoint - Slides03_第二章 线性表.ppt [兼容模式] 第二章线性表 定义 基本操作 实现 顺序存储 链式存储 应用 多项式 线性表 (Linear List) 定义 线性表是 n ( 0) 个数据元素的有限序列, 记作 (a 1, a 2,, a n ) a i 是表中数据元素,n 是表长度 假定 : 各元素的数据类型相同 原则上 : 线性表中, 表元素的数据类型可以不相同 采用的存储表示可能会对元素的数据类型有限制 特点 除第一个元素外, 其他每一个元素有一个且仅有一个直接前驱

More information

Strings

Strings Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

untitled

untitled (encapsulation) 例 類 說 類 料 來 料 information hiding 念 (inheritance) 來說 類 類 類 類 類 類 行 利 來 (polymorphism) 不 類 數 不 1 2 3 4 類 類 不 類 不 類 5 6 7 // virtual 不見了 #include #include using namespace

More information

Microsoft Word - 2008年9月二级C真卷.doc

Microsoft Word - 2008年9月二级C真卷.doc 机 密 启 用 前 2008 年 9 月 全 国 计 算 机 等 级 考 试 二 级 笔 试 试 卷 C 语 言 程 序 设 计 24 注 意 事 项 一 考 生 应 严 格 遵 守 考 场 规 则, 得 到 监 考 人 员 指 令 后 方 可 作 答 二 考 生 拿 到 试 卷 后 应 首 先 将 自 己 的 姓 名 准 考 证 号 等 内 容 涂 写 在 答 题 卡 的 相 应 位 置 上 三

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 一 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg 第 1 章概论 问题求解 数据结构及抽象数据类型 算法的特性及分类 算法的效率度量 数据结构的选择和评价 2 1.1 问题求解 问题求解 设计方法 编写计算机程序的目的?

More information

Microsoft Word - data_mid1611_and_sol.docx

Microsoft Word - data_mid1611_and_sol.docx Department of Computer Science and Engineering National Sun Yat-sen University Data Structures - Middle Exam, Nov. 14, 2016 1. Explain each of the following terms. (16%) (a) private in C++ language (b)

More information

Microsoft PowerPoint - Model Checking a Lazy Concurrent List-Based Set Algorithm.ppt [Compatibility Mode]

Microsoft PowerPoint - Model Checking a Lazy Concurrent List-Based Set Algorithm.ppt [Compatibility Mode] Model Checking a Lazy Concurrent List-Based Set Algorithm ZHANG Shaojie, LIU Yang National University of Singapore Agenda Introduction Background Ourapproach Overview Linearizabilitydefinition Modelinglanguage

More information

什么是函数式编程?

什么是函数式编程? 函数式编程 FUNCTIONAL PROGRAMMING byvoid@byvoid.com 什么是函数式编程? 真相是 从停机问题开始 Bug 假设有停机判定算法 function halting(func, input) { } return if_func_will_halt_on_input; 充分利用停机判定 function ni_ma(func) { if (halting(func,

More information

《西游记》(一)

《西游记》(一) ! """"""! """"""!! """""" #! """""" $# """""" %# """""" &! """"""! """""" ( """""" )( """"" *( """""" (*! """"!+) """""!!* """""!#) """"""""!$ """""!%( """""!&( """"!)! """""!*$ """"!(# """"" #+# """""

More information

e bug 0 x=0 y=5/x 0 Return 4 2

e bug 0 x=0 y=5/x 0 Return 4 2 e 1 4 1 4 4.1 4.2 4.3 4.4 4.5 e 2 4.1 bug 0 x=0 y=5/x 0 Return 4 2 e 3 4 3 e 4 (true) (false) 4 4 e 5 4 5 4.2 1 G= V E V={n1,n2,,n m } E={e1,e2,,e p } e k ={n i,n j }, n i,n j V e 6 4.2 4 6 1 e 3 n 1 e

More information

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2 PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native

More information

Microsoft PowerPoint - 10 模板 Template.pptx

Microsoft PowerPoint - 10 模板 Template.pptx 模板 Tempalte 泛型编程的需要 Why Templates? 设想你对整数类型实现了一个排序算法 : void sort(int *is,int n); 用该函数可以对实 复数或工资单排序吗? 模板可以复用源代码 - 泛型编程. inline void Swap( int &x, int &y){ int t = x; x = y; y =t; inline void Swap(double

More information

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检 2016 年 上 半 年 软 件 设 计 师 考 试 真 题 ( 下 午 题 ) 下 午 试 题 试 题 一 ( 共 15 分 ) 阅 读 下 列 说 明 和 图, 回 答 问 题 1 至 问 题 4, 将 解 答 填 入 答 题 纸 的 对 应 栏 内 说 明 某 会 议 中 心 提 供 举 办 会 议 的 场 地 设 施 和 各 种 设 备, 供 公 司 与 各 类 组 织 机 构 租 用 场

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information