数据结构练习题第三章栈队列和数组习题及答案

数据结构练习题第三章栈队列和数组习题及答案
数据结构练习题第三章栈队列和数组习题及答案

第三章栈、队列和数组

一、名词解释:

1.栈、栈顶、栈底、栈顶元素、空栈

2.顺序栈

3.链栈

4.递归

5.队列、队尾、队头

6.顺序队

7.循环队

8.队满

9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵

二、填空题:

1.栈修改的原则是_________或称________,因此,栈又称为________线性表。在栈顶进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。

2.栈的基本运算至少应包括________、________、________、________、________五种。

3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。

4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。

5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。

6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1表示________,此时作进栈运算,则产生“________”。

7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。

int InitStack(SqStackTp *sq)

{ ________;

return(1);}

8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。

Int Push(SqStackTp *sq,DataType x)

{ if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);}

else{________________:

________________=x;

return(1);}

}

9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。

Int Pop(SqStackTp *sq,DataType *x)

{if(sp->top==0){error(“下溢”);return(0);}

else{*x=________________;

________________;

return(1);}

}

10. 以下运算实现在顺序栈上判栈空,请在________________处用适当句子予以填充。

Int EmptyStack(SqStackTp *sq)

{if(________________) return(1);

else return(0);

}

11.以下运算实现在顺序栈上取栈顶元素,请在________________处用适当句子予以填充。

Int GetTop(SqStackTp *sq,DataType *x)

{if(________________) return(0);

1.

else{*x=________________;

return(1);}

}

12. 以下运算实现在链栈上的初始化,请在________________处用请适当句子予以填充。

Void InitStacl(LstackTp *ls){ ________________;}

13.` 以下运算实现在链栈上的进栈,请在处用请适当句子予以填充。

Void Push(LStackTp *ls,DataType x)

{ LstackTp *p;p=malloc(sizeof(LstackTp));

________________;

p->next=ls;

________________;

}

14.以下运算实现在链栈上的退栈,请在________________处用请适当句子予以填充。

Int Pop(LstackTp *ls,DataType *x)

{LstackTp *p;

if(ls!=NULL)

{ p=ls;

*x=________________;

ls=ls->next;

________________;

return(1);

}else return(0);

}

15. 以下运算实现在链栈上读栈顶元素,请在________________处用请适当句子予以填充。

Int Get Top(LstackTp *ls,DataType *x)

{ if(ls!=NULL){ ________________;return(1);}

else return(0);

}

16.必须注意,递归定义不能是“循环定义”。为此要求任何递归定义必须同时满足如下条件:

①被定义项在定义中的应用(即作为定义项的出现)具有________________;

②被定义项在最小“尺度”上的定义不是________________的。

17.队列简称________________。在队列中,新插入的结点只能添加到________________,被删除的只能是排在________________的结点。

18.队列以线性表为逻辑结构,至少包括________________、________________、

________________、________________ ________________、五种基本运算。

19.顺序队的出、入队操作会产生“________________”。

20.以下运算实现在循环队上的初始化,请在________________处用适当句子予以填充。

Void InitCycQueue(CycqueueTp *sq)

{ ________________;sq->rear=0;}

21. 以下运算实现在循环队上的入队列,请在________________处用请适当句子予以填充。

Int EnCycQueue(CycquereTp *sq,DataType x)

2.

{ if((sq->rear+1)%maxsize== ________________)

{error(“队满”);return(0);

else{ ________________;

________________ ________________;

return(1);

}

22. 以下运算实现在循环队上的出队列,请在________________处用适当句子予以填充。Int OutCycQueue(CycquereTp *sq,DataType *x)

{if(sq->front== ________________){error(“队空”);return(0);}

else{ ________________;

________________;

return(1);

}

}

23. 以下运算实现在循环队上判队空,请在________________处用适当句子予以填充。Int EmptyCycQueue(CycqueueTp sq)

{if(________________) return(1);

else return(0);

}

24. 以下运算实现在循环队上取队头,请在________________处用适当句子予以填充。Int GetHead(CycqueueTp sq,DataType *x)

{ if== ________________return(0);

else{ *x=[________________ ];

return(1);

}

25.链队在一定范围内不会出现________________的情况。当==试,队中无元素,此时

________________。

26.以下运算实现在链队上的初始化,请在________________处用适当句子予以填充。void InitQueue(QueptrTp *lp)

{ LqueueTp *p;

p=(LqueueTp *)malloc(sizeof(LqueueTp));

________________;

lq->rear=p;

(lq->front)->next=________________;

}

27. 以下运算实现在链队上的入队列,请在________________处用适当句子予以填充。Void EnQueue(QueptrTp *lq,DataType x)

{ LqueueTp *p;

p=(LqueueTp *)malloc(sizeof(LqueueTp));

________________=x;

p->next=NULL;

(lq->rear)->next=________________;

________________;

}

3.

28. 以下运算实现在链队上的出队列,请在________________处用适当句子予以填充。int OutQueue(QuetrTp *lq,DataType *x)

if(lq->front==lq->rear){erroe(“队空”);return(0);}

else { s=(lq->front)->next;

________________=s->data;

(lq->front)->next=________________;

if(s->next==NULL) lq->rear=lq->front;

free(s);

return(1);

}

}

29. 以下运算实现在链队上判队空,请在________________处用适当句子予以填充

int EmptyQueue(QueptrTp *lq)

{ if(________________) return(1);

else return(0);

}

30. 以下运算实现在链队上读队头元素,请在________________处用适当句子予以填充。

Int GetHead(QueptrTp lq,DataType *x)

{ LqueueTp *p;

if== return(0);

else{________________;

________________ =p->data;

return(1);

}

}

31.一般地,一个n维数组可视为其数据元素为___________维数组的线性表。数组通常只有___________和___________两种基本运算。

32,通常采用___________存储结构来存放数组。对二维数组可有两种存储方法:一种是以

___________为主序的存储方式,另一种是以___________为主序的存储方式。C语言数组用的是以___________序为主序的存储方法;FORTRAN语言用的是以___________序为主序的存储方法33.需要压缩存储的矩阵可分为___________矩阵和___________矩阵两种。

34.对称方阵中有近半的元素重复,若为每一对元素只分配一个存储空间,则可将n2个元素压缩存储到___________个元素的存储空间中。

35.假设以一维数组M(1:n(n+1)/2)作为n阶对称矩阵A的存储结构,以行序为主序存储其下三角(包括对角线)中的元素,数组M和矩阵A间对应的关系为___________。

36.上三角矩阵中,主对角线上的第t行(1<=t<=n)有___________个元素,按行优先顺序存放上三角矩阵中的元素a时,a之前的前i-1行共有___________个元素,在第i行上, a ijijij是该行的第___________个元素,M[k]和a的对应关系是。ij中。=c,ca存放在M[___________]i>j 当时,ij。___________和37.下三角矩阵的存储和对称矩阵类似。M[K]a的对应关系是ij的列序来进行转置,A以下运算按照矩阵.38基于三元组的稀疏矩阵转置的处理方法有两种, 4.请在___________处用适当的句子用以填充。

Trans_Sparmat(SpMatrixTp a,SpMatrixTp *b)

{ (*b).mu=;(*b).nu=;(*b).tu=;

if

for(col=1; ___________;col++)

for(p=1;p<=;p++)

if(___________==col)

{(*b).data[q].i=[p].j;

(*b).data[q].j=[p].i;

(*b).data[q].v=[p].v;

___________;

}

}

39.基于三元组的稀疏矩阵转置的处理方法有两种,以下计算按照矩阵A的三元组的次序进行转置,请在___________处用适当的句子用以填充。

Fast_Trans_Sparmat(SpMatrixTp a,SpMatrixTp *b)

{ (*b).mu=;(*b).nu=;(*b).tu==;

if

{for(col=1;___________;col++) num[col]=0;

for(t=1;t<=a,tu;t++) num[[t].j]++;

cpot[1]=1;

for(col=2;col<=;col++) cpot[col]=___________;

for(p=1;p<=;p++)

{ col=[p].j;

q=cpot[col];

(*b).data[q].i=[p].j;

(*b).data[q].j=[p].i;

(*b).data[q].v=[p].v;

__________________________;

}

}

}

40.栈称为___________线性表。 ;

41.队称为___________线性表。

42设一个链栈的栈顶指针为ls,栈中结点的格式为 info next,栈空的条件是___________;如果栈不为空,则退栈操作为p=ls; ___________;ls=ls->next;free(p)。

43.设有二为数组int M[10][20](注:m为0...10,n为0...20),每个元素(整数)栈两个存储单元,数组的起始地址为2000,元素M[5][10]的存储位置为___________,M[8][19]的存储值为___________。

44.在具有n个单元的循环队列中,队满时共有___________个元素。

45.___________可以作为实现递归函数调用的一种数据结构。

46.数组M中每个元素的长度是3个字节,行下标i从1到8,列下标j从1到0,从首的址EA 开始连续存放在存储其中。若按行方式存放,元素M[8][5]的起始地址为 5.

___________;若按列优先方式存放,元素M[8][5]的地址为___________。

47.对带有头结点的列队列lq,判定队列中只有一个数据元素的条件是___________。

48.二维数组M的成员是6个字符(每个字符栈一个存储单元)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要___________个字节;M的第8列和第5行

共占___________个字节;若M按行方式存储,元素M[8][5]的起始地址与当M按列优先方式存储时的___________元素的起始地址一致。

三、单项选择题

1.在以下栈的基本运算中,不是加工型运算的是()

①lnitStack(S) ②Push(S,X) ③Pop(S) ④empty(S)

2.以下说法正确的是 ( )

①因链栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况

②因顺序栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况

③对于链栈而言,在栈满状态下,如果此时再作进栈运算,则会发生“上溢”

④对于顺序栈而言在栈满状态下如果此时再作迸栈运算,则会发生“下溢”。

3.在以下队列的基本运算中,不是加工型运算的是()

①InitQueue(Q) ②EnQueue(Q,X) ③OutQueu(Q,X) ④GetHead(Q,x)

4.顺序队列的人队操作应为 ( )

①=+1 []=x

②[]=x =+1

③=+1)% maxsize; []=x

④[sqrear]=x =+1)% maxsize

5.循环队列的人队操作应为 ( )

①=+1 []=x

②[]=x =+1

③=+1)% maxsize []=x

④[]=x =+1)% maxsize

6. 顺序队列的出队操作为 ( )

①=+1)% maxsize

②=+1

③=+1)% maxsize

④=+1

7. 循环队列的出队操作为 ( )

①=+1)% maxsize

②=+1

③=+)% maxsize

④=+1

8.循环队列的队满条件为 ( )

①+1) % mazsize ==+1) % maxsize;

②+1 % maxsize ==+1

③sq.(rear+1) % maxsize ==

④ ==

9.循环队列的队空条件为 ( )

①+1) % maxsize ==+1) % maxsize

6.

②+) % maxsize ==+1

③+1) % maxsize ==

④ ==

10.数组的数据元素类型DataType可根据实际需要而定义。以下说法完全正确的是 ( )

①数组的读运算可以读取一个数据元素整体,写运算只能修改一个数据元素的一部分

②数组的读、写运算可以读取或修改一个数据元素的一部分或一个整体

③数组的读、写运算只能读取或修改一个数据元素的一部分

④数组的读、写运算只能读取或修改一个数据元素整体

11.对于以行序为主序的存储结构来说,在数组A[c···d,c···d]中,c1和d1分别为2121数组

A的第一个下标的上、下界,c…d分别为第二各下标的上、下界,每个数据元素占K 22个存储单

元,二维数组中任一元素a[i,j]的存储位置可由( )式确定.

①Loc[i,j]=[( d-c+1)(i- c)+(j- c)]*k 2122②Loc[i,j]=loc[c, c]+[( d- c+1)(i- c)+(j- c)]*k

Loc{i,j}=A[c, c]+[( d- c+1)(i- c)+(j- c)]*k 222121④Loc[i,j]=loc[0,0]+[( d- c+1)(i-

222121③

c)=(j- c)]*k 221212对于C语言的二维数组DataType A[m][n],每个数据元素占K个存储单元,

二维数组中任意元素a[i,j] 的存储位置可由( )式确定.

①Loc[i,j]=A[m,n]+[(n+1)*i+j]*k

②Loc[i,j]=loc[0,0]+[(m+n)*i+j]*k

③Loc[i,j]=loc[0,0]+[(n+1)*i+j]*k

④Loc[i,j]=[(n+1)*i+j]*k

13.线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种()的存储

结构。

①随机存取②顺序存储

14.如果以链表作为栈的存储结构,则退栈操作是 ( )

①必须判别栈是否满②必须判别栈是否空

③判别栈元素的类型④对栈不做任何操作

15对于基于三元组的稀疏矩阵转置的处埋方法以下说法正确的是 ( )

①按照矩阵A的列序来进行转置,算法的时间复杂度为0(nu+tu)

②按照A的三元组的次序进行转置,算法的时间复杂度为O(nu*tu)

③按照矩阵A的列序来进行转置的方法称快速转置

④按照矩阵A的列序进行转置,对于tu<

16.稀疏矩阵的压缩存储方法是只存储 ( )

①非零元素②三元祖(i,j, a)③ a ④ i,j ijij17.基于三元组

的稀疏矩阵,对每个非零元素a,可以用一个()唯一确定。ij①非零元素②三

元组(i,j,a) ③ a ④ i,j ijij18如果以链表作为栈的存储结构,则退栈操作时

( )

①必须判别栈是否满②判别栈元素的类型

③必须判别栈是否空④队栈不做任何判别

19.设C语言数组Data[m+1]作为循环队列SQ的存储空间, front为队头指针,rear为队为指

针,则执行出队操作的语句为()

①front=front+1 ② front=(front+1)%m

③rear=(rear+1)%m ④ front=(front+1)%(m+1)

20.三角矩阵可压缩存储到数组()中。

7.

①M[1:n(n+1)/2+1] ② M[1:n(n+1)/2]

③M[n(n+1)/2+1] ④M[n(n+1)/2]

21.设有一顺序栈S,元素s,s,s,s,s,s依次进栈,如果6个元素出线的顺序是s,s,s, s , 6632344215s,s,

则栈的容量至少应该是()15①2 ② 3

新人教版小学六年级数学上册圆的认识单元知识结构框架

新人教版小学六年级数学上册圆的理解单元知识结构框架 在各个学段中,《课程标准》安排了“数与代数”、“空间与图形”、“统计与概率”、“实践与综合应用”四个学习领域。 在空间与图形方面,本册教材安排了《位置》、《圆》两个单元。在《圆》这个单元中,通过对曲线图形——圆的特征和相关知识的探索与学习,初步理解研究曲线图形的基本方法,促动学生空间观点的进一步发展。下面,我将从以下几个方面来谈我对这个单元教材的理解和我的主要教学策略:(出示课件) 一、课标要求: 关于圆,在第一学段(1—3年级)的要求是: 1.会辨认长方形、正方形、三角形、平行四边形、圆等简单图形。 2.能用简单的语言描述它的特征。初步了解它是轴对称图形。 3.能对简单图形实行分类并会用各种平面图形拼图。 在本学段,即第二学段(4—6年级)的要求是: 1.通过观察、操作,理解圆,掌握圆的特征,会用圆规画圆; 2.知道圆是轴对称图形,进一步理解轴对称图形,能使用平移、轴对称和旋转设计简单的图案。

3.探索并掌握圆的周长和面积公式,能够准确计算圆的周长和面积。4.经历从实际生活中发现问题、提出问题、解决问题的过程,体会圆的知识在生活中的广泛应用,初步形成综合使用数学知识解决问题的水平。 圆是一种曲线图形,它同直线图形有不同的特点。在本册之前各册教材出现的平面图形都是直线图形。所以“圆”的教学是学生系统理解曲线图形特征的开始。在低年级的教学中虽然也出现过圆,但仅仅直观的理解,比如: 人教版一年级上册第四、五单元《理解物体和图形》《分类》,初步理解圆并能够对基本图形实行分类。 一年级下册第三单元《图形的拼组》,尝试用不同的立体图形或平面图形实行设计和拼组。 二年级上册第五单元《观察物体》,初步了解圆是轴对称图形,并知道它有无数条对称轴。 本册的第四单元《圆》,要理解圆的基本特征,会画圆,会计算圆的周长和面积并会灵活应用这些知识解决实际问题。从学习直线图形到学习曲线图形,不论是内容本身、还是研究问题的方法,都有所变化,教材通过对圆的研究,使学生初步理解研究曲线图形的基本方法,同时,也渗透了曲线图形与直线图形的内在联系。在这个单元里,教材还利用学生已有的对轴对称图形的初步理解探讨圆的轴对称特点,给出轴对称图形

栈和队列习题答案

第三章栈和队列习题答案 一、基础知识题 设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题: (1)若入、出栈次序为Push(1), Pop(),Push(2),Push(3), Pop(), Pop( ),Push(4), Pop( ),则出栈的数字序列为何(这里Push(i)表示i进栈,Pop( )表示出栈) (2)能否得到出栈序列1423和1432并说明为什么不能得到或者如何得到。 (3)请分析1,2 ,3 ,4 的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。 答:(1)出栈序列为:1324 (2)不能得到1423序列。因为要得到14的出栈序列,则应做Push(1),Pop(),Push(2),Push (3),Push(4),Pop()。这样,3在栈顶,2在栈底,所以不能得到23的出栈序列。能得到1432的出栈序列。具体操作为:Push(1), Pop(),Push(2),Push(3),Push(4),Pop(),Pop(),Pop()。 (3)在1,2 ,3 ,4 的24种排列中,可通过相应入出栈操作得到的序列是: 1234,1243,1324,1342,1432,2134,2143,2314,2341,2431,3214,3241,3421,4321 不能得到的序列是: 1423,2413,3124,3142,3412,4123,4132,4213,4231,4312 链栈中为何不设置头结点 答:链栈不需要在头部附加头结点,因为栈都是在头部进行操作的,如果加了头结点,等于要对头结点之后的结点进行操作,反而使算法更复杂,所以只要有链表的头指针就可以了。 循环队列的优点是什么如何判别它的空和满 答:循环队列的优点是:它可以克服顺序队列的"假上溢"现象,能够使存储队列的向量空间得到充分的利用。判别循环队列的"空"或"满"不能以头尾指针是否相等来确定,一般是通过以下几种方法:一是另设一布尔变量来区别队列的空和满。二是少用一个元素的空间,每次入队前测试入队后头尾指针是否会重合,如果会重合就认为队列已满。三是设置一计数器记录队列中元素总数,不仅可判别空或满,还可以得到队列中元素的个数。 设长度为n的链队用单循环链表表示,若设头指针,则入队出队操作的时间为何若只设尾指针呢答:当只设头指针时,出队的时间为1,而入队的时间需要n,因为每次入队均需从头指针开始查找,找到最后一个元素时方可进行入队操作。若只设尾指针,则出入队时间均为1。因为是循环链表,尾指针所指的下一个元素就是头指针所指元素,所以出队时不需要遍历整个队列。 指出下述程序段的功能是什么 (1) void Demo1(SeqStack *S){ int i; arr[64] ; n=0 ; while ( StackEmpty(S)) arr[n++]=Pop(S); for (i=0, i< n; i++) Push(S, arr[i]); } .. // 设Q1已有内容,Q2已初始化过 while ( ! QueueEmpty( &Q1) ) { x=DeQueue( &Q1 ) ; EnQueue(&Q2, x); n++;} for (i=0; i< n; i++) { x=DeQueue(&Q2) ; EnQueue( &Q1, x) ; EnQueue( &Q2, x);} 答: (1)程序段的功能是将一栈中的元素按反序重新排列,也就是原来在栈顶的元素放到栈底,栈底的

数据结构第三章习题答案

第三章习题 1.按图3.1(b)所示铁道(两侧铁道均为单向行驶道)进行车厢调度,回答: ⑴如进站的车厢序列为123,则可能得到的出站车厢序列是什么? ⑵如进站的车厢序列为123456,能否得到435612和135426的出站序列,并说明原因。(即写出 以“S”表示进栈、以“X”表示出栈的栈操作序列)。 2.设队列中有A、B、C、D、E这5个元素,其中队首元素为A。如果对这个队列重复执行下列4步 操作: (1)输出队首元素; (2)把队首元素值插入到队尾; (3)删除队首元素; (4)再次删除队首元素。 直到队列成为空队列为止,得到输出序列: (1)A、C、E、C、C (2) A、C、E (3) A、C、E、C、C、C (4) A、C、E、C 3.给出栈的两种存储结构形式名称,在这两种栈的存储结构中如何判别栈空与栈满? 4.按照四则运算加、减、乘、除和幂运算(↑)优先关系的惯例,画出对下列算术表达式求值时操 作数栈和运算符栈的变化过程: A-B*C/D+E↑F 5.试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如‘序列1& 序列2’ 模式的字符序列。其中序列1和序列2中都不含字符’&’,且序列2是序列1的逆序列。例如,‘a+b&b+a’是属该模式的字符序列,而‘1+3&3-1’则不是。 6.假设表达式由单字母变量和双目四则运算算符构成。试写一个算法,将一个通常书写形式且书写 正确的表达式转换为逆波兰式。 7.假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针), 试编写相应的队列初始化、入队列和出队列的算法。 8.要求循环队列不损失一个空间全部都能得到利用, 设置一个标志域tag , 以tag为0或1来区分 头尾指针相同时的队列状态的空与满,请编写与此结构相应的入队与出队算法。

完整版数据结构习题集第3章栈和队列

第3章栈和队列 一、选择题 1.栈结构通常采用的两种存储结构是(A )。 A、顺序存储结构和链表存储结构 B、散列和索引方式 C、链表存储结构和数组 D、线性链表结构和非线性存储结构 2.设栈ST 用顺序存储结构表示,则栈ST 为空的条件是( B ) A、ST.top-ST.base<>0 B、ST.top-ST.base==0 C、ST.top-ST.base<>n D、ST.top-ST.base==n 3.向一个栈顶指针为HS 的链栈中插入一个s 结点时,则执行( C ) A、HS->next=s; B、s->next=HS->next;HS->next=s; C、s->next=HS;HS=s; D、s->next=HS;HS=HS->next; 4.从一个栈顶指针为HS 的链栈中删除一个结点,用x 保存被删除结点的值,则执行( C) A 、x=HS;HS=HS->next; B 、HS=HS->next;x=HS->data; C 、x=HS->data;HS=HS->next; D 、s->next=Hs;Hs=HS->next; 5.表达式a*(b+c)-d 的后缀表达式为( B ) A、abcdd+- B、abc+*d- C、abc*+d- D、-+*abcd 6.中缀表达式A-(B+C/D)*E 的后缀形式是( D ) A、AB-C+D/E* B、ABC+D/E* C、ABCD/E*+- D、ABCD/+E*- 7.一个队列的入列序列是1,2,3,4,则队列的输出序列是( B ) A、4,3,2,1 B、1,2,3,4 C、1,4,3,2 D、3,2,4,1 8.循环队列SQ 采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front 和rear,则判定此循环队列为空的条件是() A、Q.rear-Q.front==n B、Q.rear-Q.front-1==n C、Q.front==Q.rear D、Q.front==Q.rear+1 9.循环队列SQ 采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front 和rear,则判定此循环队列为满的条件是() A、Q.front==Q.rear B、Q.front!=Q.rear C、Q.front==(Q.rear+1)%n D、Q.front!=(Q.rear+1)%n 10.若在一个大小为6 的数组上实现循环队列,且当前rear 和front 的值分别为0 和3,当从 队列中删除一个元素,再加入两个元素后,rear 和front 的值分别为() A、1,5 B、2, 4 C、4,2 D、5,1 11.用单链表表示的链式队列的队头在链表的()位置 A、链头 B、链尾 C、链中 12.判定一个链队列Q(最多元素为n 个)为空的条件是() A、Q.front==Q.rear B、Q.front!=Q.rear C、Q.front==(Q.rear+1)%n D、Q.front!=(Q.rear+1)%n 13.在链队列Q 中,插入s 所指结点需顺序执行的指令是() A 、Q.front->next=s;f=s; B 、Q.rear->next=s;Q.rear=s;

数据结构_实验三_栈和队列及其应用

实验编号:3四川师大《数据结构》实验报告2016年10月29日 实验三栈和队列及其应用_ 一.实验目的及要求 (1)掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们; (2)本实验训练的要点是“栈”的观点及其典型用法; (3)掌握问题求解的状态表示及其递归算法,以及由递归程序到非递归程序的转化方法。 二.实验内容 (1)编程实现栈在两种存储结构中的基本操作(栈的初始化、判栈空、入栈、出栈等); (2)应用栈的基本操作,实现数制转换(任意进制); (3)编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列); (4)利用栈实现任一个表达式中的语法检查(括号的匹配)。 (5)利用栈实现表达式的求值。 注:(1)~(3)必做,(4)~(5)选做。 三.主要仪器设备及软件 (1)PC机 (2)Dev C++ ,Visual C++, VS2010等 四.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)编程实现栈在两种存储结构中的基本操作(栈的初始化、判栈空、入栈、出栈等); A.顺序储存: 代码部分: 栈" << endl; cout << " 2.出栈" << endl; cout << " 3.判栈空" << endl; cout << " 4.返回栈顶部数据" << endl; cout << " 5.栈长" << endl; cout << " 0.退出系统" << endl;

cout << "你的选择是:" ; } 链式储存: 代码部分: 栈"<>select; switch (select){ case 0:break; case 1: cout<<"push data:"; cin>>e; if(push(L,e)){

圆的认识知识点总结

圆的认识知识点总结 圆的认识知识点总结? 圆的定义:圆是一种几何图形。当一条线段绕着它的一个端点在平面内旋转一周时,它的另一个端点的轨迹叫做圆。在一个个平面内,线段OA绕它固定的一个端点O旋转一周,另一个端点A随之旋转所形成的图形叫做圆,固定的端点O叫做圆心,线段OA叫做半径。相关定义: 1 在同一平面内,到定点的距离等于定长的点的集合叫做圆。这个定点叫做圆的圆心。图形一周的长度,就是圆的周长。 2 连接圆心和圆上的任意一点的线段叫做半径,字母表示为r。 3 通过圆心并且两端都在圆上的线段叫做直径,字母表示为d。直径所在的直线是圆的对称轴。4 连接圆上任意两点的线段叫做弦。最长的弦是直径,直径是过圆心的弦。 5 圆上任意两点间的部分

叫做圆弧,简称弧。大于半圆的弧称为优弧,优弧是用三个字母表示。小于半圆的弧称为劣弧,劣弧用两个字母表示。半圆既不是优弧,也不是劣弧。优弧是大于180度的弧,劣弧是小于180度的弧。 6 两条半径和一段弧围成的图形叫做扇形。7 弦和它所对的一段弧围成的图形叫做弓形。8 顶点在圆心上的角叫做圆心角。9 顶点在圆周上,且它的两边分别与圆有另一个交点的角叫做圆周角。10 圆周长度与圆的直径长度的比值叫做圆周率。它是一个无限不循环小数,通常用π表示,π=……在实际应用中,一般取π≈。11圆周角等于相同弧所对的圆心角的一半。 12 圆是一个正n边形,边长无限接近0但不等于0。圆的集合定义:圆是平面内到定点的距离等于定长的点的集合,其中定点是圆心,定长是半径。? 圆的字母表示:以点O 为圆心的圆记作“⊙O”,读作O”。圆—⊙;半径—r或R;弧—⌒;

数据结构堆栈与队列实验报告

实验二堆栈和队列 实验目的: 1.熟悉栈这种特殊线性结构的特性; 2.熟练并掌握栈在顺序存储结构和链表存储结构下的基本运算; 3.熟悉队列这种特殊线性结构的特性; 3.熟练掌握队列在链表存储结构下的基本运算。 实验原理: 堆栈顺序存储结构下的基本算法; 堆栈链式存储结构下的基本算法; 队列顺序存储结构下的基本算法; 队列链式存储结构下的基本算法; 实验内容: 第一题链式堆栈设计。要求 (1)用链式堆栈设计实现堆栈,堆栈的操作集合要求包括:初始化StackInitiate(S),非空否StackNotEmpty(S),入栈StackiPush(S,x),出栈StackPop(S,d),取栈顶数据元素StackTop(S,d); (2)设计一个主函数对链式堆栈进行测试。测试方法为:依次把数据元素1,2,3,4,5入栈,然后出栈并在屏幕上显示出栈的数据元素; (3)定义数据元素的数据类型为如下形式的结构体, Typedef struct { char taskName[10]; int taskNo; }DataType; 首先设计一个包含5个数据元素的测试数据,然后设计一个主函数对链式堆栈进行测试,测试方法为:依次吧5个数据元素入栈,然后出栈并在屏幕上显示出栈的数据元素。 第二题对顺序循环队列,常规的设计方法是使用対尾指针和对头指针,对尾指针用于指示当前的対尾位置下标,对头指针用于指示当前的対头位置下标。现要求: (1)设计一个使用对头指针和计数器的顺序循环队列抽象数据类型,其中操作包括:初始化,入队列,出队列,取对头元素和判断队列是否为空; (2)编写主函数进行测试。 程序代码: 第一题: (1)源程序"LinStack.h"如下: #define NULL 0 typedef struct snode { DataType data; struct snode *next; } LSNode; /*(1)初始化StackInitiate(LSNode ** head) */ void StackInitiate(LSNode ** head) /*初始化带头结点链式堆栈*/

圆的认识知识结构图

《圆的认识》单元知识点 1、圆的认识 (1) 直径是圆中所有线段中最长的一条。 (2) 半径和直径的关系:同一个圆里,直径是半径的两倍,半径 是直径的一半。 (3) 在同一个圆里,有无数条半径,所有半径的长度都相等。 (4) 在同一个圆里,有无数条直径,所有直径的长度都相等。 (5) 画圆时,圆规针尖固定的一点是圆心,圆规两脚之间距离是 半径。圆心确定圆的位置,半径确定圆的大小 、知识结构图 广 圆各部分名称(圆心、直径、半径) 圆的认识 < 圆的画法、对称轴 圆的周长 圆 的 认 识 r 推导过程(渗透转化思想) 圆的面积 2 . . 2 圆面积=n r X r= n r 。即:S=n r 与圆相关的计算 二、核心知识点 半圆的周长、面积计算 圆的周长=圆周率x 直径=圆周率x 半 径 X 2 (C =n d 或 C = 2 n r ) 组合图形求面积

(6) 圆是轴对称图形,有无数条对称轴,对称轴就是直径所在的 直线 (7) 正方形里最大的圆:圆心是对角线交点,半径是正方形边长 的一半。 (8) 长方形里最大的圆:圆心是对角线交点,半径是长方形宽的一半。 2、圆的周长 (1) 圆周率:任何一个圆的周长除以它直径的商都是一个固定的数,我们把它叫做圆周率,用字母n表示。n是一个无限不循环小数,n~ 3.14。 (2) 圆的周长二圆周率X直径二圆周率x半径X 2 (C=n d或C= 2 (3) 半圆的周长二圆周长的一半+直径(C半圆二n d宁2+ d, C半圆二n r + 2r (4)常用数据(略,自己背诵) (5)同一个圆里,圆的周长是直径的n倍,圆的周长是半径的2 n倍。 3、圆的面积 (1) 圆面积公式的推导过程 把圆分成若干等份,剪开后,拼成了一个近似的长方形。长方形 的面积与圆的面积相等;长方形的长相当于圆周长的一半,宽相当于 圆的半径。 因为:长方形面积二长X宽,所以:圆面积二n r X r= n r2。即:S=n r2。

最新九年级数学知识点:圆的认识知识点

多阅读和积累,可以使学生增长知识,使学生在学习中做到举一反三。在此本站初中频道为您提供圆的认识知识点,希望给您学习带来帮助,使您学习更上一层楼! 圆的定义: 圆是一种几何图形。当一条线段绕着它的一个端点在平面内旋转一周时,它的另一个端点的轨迹叫做圆。 在一个个平面内,线段OA绕它固定的一个端点O旋转一周,另一个端点A随之旋转所形成的图形叫做圆,固定的端点O叫做圆心,线段OA叫做半径。 相关定义: 1 在同一平面内,到定点的距离等于定长的点的集合叫做圆。这个定点叫做圆的圆心。图形一周的长度,就是圆的周长。 2 连接圆心和圆上的任意一点的线段叫做半径,字母表示为r。 3 通过圆心并且两端都在圆上的线段叫做直径,字母表示为d。直径所在的直线是圆的对称轴。 4 连接圆上任意两点的线段叫做弦。最长的弦是直径,直径是过圆心的弦。 5 圆上任意两点间的部分叫做圆弧,简称弧。大于半圆的弧称为优弧,优弧是用三个字母表示。小于半圆的弧称为劣弧,劣弧用两个字母表示。半圆既不是优弧,也不是劣弧。优弧是大于180度的弧,劣弧是小于180度的弧。 6 由两条半径和一段弧围成的图形叫做扇形。 7 由弦和它所对的一段弧围成的图形叫做弓形。 8 顶点在圆心上的角叫做圆心角。 9 顶点在圆周上,且它的两边分别与圆有另一个交点的角叫做圆周角。 10 圆周长度与圆的直径长度的比值叫做圆周率。它是一个无限不循环小数,通常用π表示,π=3.14159265……在实际应用中,一般取π≈3.14。 11圆周角等于相同弧所对的圆心角的一半。 12 圆是一个正n边形(n为无限大的正整数),边长无限接近0但不等于0。 圆的集合定义: 圆是平面内到定点的距离等于定长的点的集合,其中定点是圆心,定长是半径。 ? 圆的字母表示: 以点O为圆心的圆记作“⊙O”,读作O”。 圆—⊙ ; 半径—r或R(在环形圆中外环半径表示的字母); 弧—⌒ ; 直径—d ; 扇形弧长—L ; 周长—C ; 面积—S。 圆的性质: (1)圆是轴对称图形,其对称轴是任意一条通过圆心的直线。 圆也是中心对称图形,其对称中心是圆心。 垂径定理:垂直于弦的直径平分这条弦,并且平分弦所对的2条弧。 逆定理:平分弦(不是直径)的直径垂直于弦,并且平分弦所对的2条弧。 (2)有关圆周角和圆心角的性质和定理 ①在同圆或等圆中,如果两个圆心角,两个圆周角,两组弧,两条弦,两条弦心距中有

第3章 栈和队列

《数据结构》 第3章栈和队列 共85题 一、单选 1. (1)分题目ID号:10705 题目难度:容易 设对一组数据的处理具有“后进先出”的特点,则应采用的数据结构是【1】 A. 队列 B. 栈 C. 顺序表 D. 二叉树题目答案:B 2. (1)分题目ID号:10706 题目难度:容易 若进栈序列为3、5、7、9,进栈和出栈可穿插进行,则不可能的出栈序列是【1】 A. 7,5,3,9 B. 9,5,7,3 C. 9,7,5,3 D. 7,5,9,3 题目答案:B 3. (1)分题目ID号:10707 题目难度:较难 设用一维数组A[m]存储栈,令A[m-1]为栈底,t指示当前栈顶的位置。如果栈不空,则出栈时应使【1】 A. t=t+l B. t=t-1 C. t=m-1 D. 不改变t 题目答案:A 4. (1)分题目ID号:10708 题目难度:容易 设用一维数组A[m]存储栈,令A[0]为栈底,top指示当前钱顶的位置,当把栈清空时所要执行的操作是【1】 A. top-- B. top=0 C. top=-1 D. top=m-1 题目答案:C 5. (1)分题目ID号:10709 题目难度:容易 设栈s的初始状态为空,如果进栈序列为1、2、3、4、5、6,出栈序列为3、2、5、6、4、1,则s的容量至少是【1】 A. 6 B. 4 C. 2 D. 3 题目答案:D 6. (1)分题目ID号:10710 题目难度:容易 设栈s最多能容纳4个元素,现有A、B、C、D、E、F六个元素按顺序进栈,以下可能的出栈序列是【1】 A. E、D、C、B、A、F B. B、C、E、F、A、D C. C、B、E、D、A、F D. A、D、F、E、B、C 题目答案:C

数据结构第三章栈和队列3习题

第三章栈和队列试题 一、单项选择题 1.栈的插入和删除操作在()进行。 A. 栈顶 B. 栈底 C. 任意位置 D. 指定位置 2.当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时, 首先应执行()语句修改top指针。 A. top++; B. top--; C. top = 0; D. top; 3.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。 A. 3, 2, 1 B. 2, 1, 3 C. 3, 1, 2 D. 1, 3, 2 4.在一个顺序存储的循环队列中,队头指针指向队头元素的()位置。 A. 前一个 B. 后一个 C. 当前 D. 后面 5.当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。 A. n-2 B. n-1 C. n D. n+1 6.从一个顺序存储的循环队列中删除一个元素时,需要()。 A. 队头指针加一 B. 队头指针减一 C. 取出队头指针所指的元素 D. 取出队尾指针所指的元素 7.假定一个顺序存储的循环队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。 A. front+1 == rear B. rear+1 == front C. front == 0 D. front == rear 8.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。 A. front == rear B. front != NULL C. rear != NULL D. front == NULL 9.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。若想在链式栈的栈顶插入一 个由指针s所指的结点,则应执行操作()。 A. top->link = s; B.s->link = top->link; top->link = s; C. s->link = top; top = s; D. s->link = top; top = top->link; 10.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。若想摘除链式栈的栈顶结点, 并将被摘除结点的值保存到x中,则应执行操作()。 A. x = top->data; top = top->link; B. top = top->link; x = top->data; C. x = top; top = top->link; D. x = top->data; 11.设循环队列的结构是 #define MaxSize 100 typedef int ElemType;

数据结构栈和队列实验报告.doc

南京信息工程大学实验(实习)报告 实验(实习)名称栈和队列日期2017.11.8 得分指导老师崔萌萌 系计算机系专业软件工程年级2016 班次(1) 姓名学号 一、实验目的 1、学习栈的顺序存储和实现,会进行栈的基本操作 2、掌握递归 3、学习队列的顺序存储、链式存储,会进行队列的基本操作 4、掌握循环队列的表示和基本操作 二、实验内容 1、用栈解决以下问题: (1)对于输入的任意一个非负十进制数,显示输出与其等值的八进制数,写出程序。(2)表达式求值,写出程序。 2、用递归写出以下程序: (1)求n!。 (2)汉诺塔程序,并截图显示3、4、5个盘子的移动步骤,写出移动6个盘子的移动次数。

3、编程实现:(1)创建队列,将asdfghjkl依次入队。(2)将队列asdfghjkl依次出队。 4、编程实现创建一个最多6个元素的循环队列、将ABCDEF依次入队,判断循环队列是否队满。 三、实验步骤 1.栈的使用 1.1 用栈实现进制的转换: 代码如下: #include #include using namespace std; int main() { stack s; //栈s; int n,radix; printf("请输入要转换的十进制非负整数: "); scanf("%d",&n); printf("请输入目标进制: "); scanf("%d",&radix);

printf("转换为%d进制: ",radix); while(n) { s.push(n%radix); n /= radix; } while(!s.empty()) { //非空 printf("%d",s.top()); s.pop(); } printf("\n"); return 0; } 运行结果如下: 2.2 求表达式的值 代码如下: #include #include #include #include #define true 1 #define false 0 #define OPSETSIZE 8 typedef int Status;

《圆》单元知识结构图

《圆》单元知识结构图 在《圆》这一单元中,通过对曲线图形——圆的特征和有关知识的探索与学习,初步认识研究曲线图形的基本方法,促进学生空间观念的进一步发展。下面,我将从以下几个方面来谈我对这一单元教材的认识和我的主要教学策略: 一、课标要求: 关于圆,在第一学段(1—3年级)的要求是: 1.会辨认长方形、正方形、三角形、平行四边形、圆等简单图形。2.能用简单的语言描述它的特征。初步了解它是轴对称图形。3.能对简单图形进行分类并会用各种平面图形拼图。 在本学段,即第二学段(4—6年级)的要求是: 1.通过观察、操作,认识圆,掌握圆的特征,会用圆规画圆;2.知道圆是轴对称图形,进一步认识轴对称图形,能运用平移、轴对称和旋转设计简单的图案。 3.探索并掌握圆的周长和面积公式,能够正确计算圆的周长和面积。4.经历从实际生活中发现问题、提出问题、解决问题的过程,体会圆的知识在生活中的广泛应用,初步形成综合运用数学知识解决问题的能力。 圆是一种曲线图形,它同直线图形有不同的特点。在本册之前各册教材出现的平面图形都是直线图形。所以“圆”的教学是学生系统认识曲线图形特征的开始。在低年级的教学中虽然也出现过圆,但只是直观的认识,

本册的第五单元《圆》,要认识圆的基本特征,会画圆,会计算圆的周长和面积并会灵活应用这些知识解决实际问题。从学习直线图形到学习曲线图形,不论是内容本身、还是研究问题的方法,都有所变化,教材通过对圆的研究,使学生初步认识研究曲线图形的基本方法,同时,也渗透了曲线图形与直线图形的内在联系。在这一单元里,教材还利用学生已有的对轴对称图形的初步认识探讨圆的轴对称特点,给出轴对称图形的概念,使学生关于轴对称图形的知识系统化,从而更好地发展学生的空间观察。 二、知识结构: 本单元教材主要内容有:认识圆、圆的周长和圆的面积等。 圆的认识包括圆的基本特征(认识圆心、半径和直径、半径和直径的长度间的关系)、掌握用圆规画圆的方法(加深对圆的认识)、圆是轴对称图形,有无数条对称轴。 圆的周长和面积计算公式的教学,加强了启发性和探索性,注意让学生动手操作,使学生在实践活动中通过交流、思考来探究圆的周长和面积计算方法,逐步导出和掌握计算公式。对于圆的周长,让学生通过用线绕一绕,把圆放在直尺上滚一滚等方法来测量,然后再通过填表,运用不完全归纳法来探寻周长与直径的比值的规律,从而引出圆周率的概念。对于圆的面积教学,则采用转化的方法,把圆的面积转化为熟悉的直线图形的面积来计算。 三、教学目标: 1.知识与技能目标:认识圆,掌握圆的基本特征,理解直径与半径

圆中知识结构图

关于《圆》的知识结构整理 一.主要定理及其作用: 1.圆心角, 弧,弦,弦心距之间的关系定理: 在同圆或等圆中,如果①两个圆心角②两条弧,③两条弦④两条弦心距中,有一组量相等,那么它们所对应的其余各组量都分别相等:(等弧---等角---等弦……) 用的最多的依据: ①在同圆或等圆中,如果两个圆心角相等,那么它们所对的两条弧相等 ②等弧所对的圆心角相等: ③在同圆或等圆中,如果两条弦相等,那么它们所对的两条弧相等 ④等弧所对的两条弦相等 2.垂径定理: 如果一条直线①过圆心;②垂直于弦;③平分弦;④平分劣弧;⑤平分优弧.只要具备其中两个条件,就可推出其余三个结论. (直角三角形---等弧……)用的最多的依据: ①垂直于弦的直径平分弦,并且平分弦所的两条弧 ②平分弦(非直径)的直径垂直于这条弦,并且平分这条弦所对的两条弧. ③一条弦的垂直平分线||经过圆心,并且平分这条弦所对的两条弧 ④平分弧的直径过圆心的直线垂直平分这条弧所对的弦. 3.圆周角定理: (1)直径所对的圆周角是直角; (2)90°的圆周角所对的弦是直径。 (3)一条弧所对的圆周角等于它所对的圆心角的一半; (4)同弧所对的圆周角相等; (5)等弧所对的圆周角相等; (6)在同圆或等圆中,相等的圆周角所对的弧相等; (等弧---等角---直角三角形) 4.切线的性质定理: 圆的切线垂直于经过切点的半径(直径)。(垂直关系) 5.切线的判定定理: 经过半径的外端,并且垂直于这条半径的直线是圆的切线。 6.切线长定理: 从圆外一点引圆的两条切线,它们的切线长相等,这一点和圆心的连线平分两条切线的夹角。(等弦---等弧---等角) 7.相切和相交两圆的性质定理: 如果两圆相切,连心线必过切点。如果两圆相交,连心线垂直平分公共弦 二.主要辅助线及其作用: 1.作弦心距:弦的中点.弧的中点。 2.过某一点作弦:构造相等的圆周角。 3.作直径:构造直角三角形和同弧所对的圆周角。 4.连结过切点的半径:“题中若有圆切线圆心切点连一连”。 5.两圆相切和两圆相交时,作连心线和公共弦。

圆的认识 -- 知识点归纳

圆的认识 圆的定义: 圆是一种几何图形。当一条线段绕着它的一个端点在平面内旋转一周时,它的另一个端点的轨迹叫做圆。 在一个个平面内,线段OA绕它固定的一个端点O旋转一周,另一个端点A随之旋转所形成的图形叫做圆,固定的端点O叫做圆心,线段OA叫做半径。 相关定义: 1 在同一平面内,到定点的距离等于定长的点的集合叫做圆。这个定点叫做圆的圆心。图形一周的长度,就是圆的周长。 2 连接圆心和圆上的任意一点的线段叫做半径,字母表示为r。 3 通过圆心并且两端都在圆上的线段叫做直径,字母表示为d。直径所在的直线是圆的对称轴。 4 连接圆上任意两点的线段叫做弦。最长的弦是直径,直径是过圆心的弦。 5 圆上任意两点间的部分叫做圆弧,简称弧。大于半圆的弧称为优弧,优弧是用三个字母表示。小于半圆的弧称为劣弧,劣弧用两个字母表示。半圆既不是优弧,也不是劣弧。优弧是大于180度的弧,劣弧是小于180度的弧。 6 由两条半径和一段弧围成的图形叫做扇形。 7 由弦和它所对的一段弧围成的图形叫做弓形。 8 顶点在圆心上的角叫做圆心角。

9 顶点在圆周上,且它的两边分别与圆有另一个交点的角叫做圆周角。 10 圆周长度与圆的直径长度的比值叫做圆周率。它是一个无限不循环小数,通常用π表示,π=3.14159265……在实际应用中,一般取π≈3.14。 11圆周角等于相同弧所对的圆心角的一半。 12 圆是一个正n边形(n为无限大的正整数),边长无限接近0但不等于0。 圆的集合定义: 圆是平面内到定点的距离等于定长的点的集合,其中定点是圆心,定长是半径。 圆的字母表示: 以点O为圆心的圆记作“⊙O”,读作O”。 圆—⊙; 半径—r或R(在环形圆中外环半径表示的字母); 弧—⌒; 直径—d ; 扇形弧长—L ; 周长—C ; 面积—S。 圆的性质: (1)圆是轴对称图形,其对称轴是任意一条通过圆心的直线。 圆也是中心对称图形,其对称中心是圆心。 垂径定理:垂直于弦的直径平分这条弦,并且平分弦所对的2条弧。

数据结构栈和队列习题及答案

习题三栈和队列 一单项选择题 1. 在作进栈运算时,应先判别栈是否(① ),在作退栈运算时应先判别栈是否(② )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(③ )。 ①, ②: A. 空 B. 满 C. 上溢 D. 下溢 ③: A. n-1 B. n C. n+1 D. n/2 2.若已知一个栈的进栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,...,pn,若p1=3,则p2为( )。 A 可能是2 B 一定是2 C 可能是1 D 一定是1 3. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?() A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6 4.设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4, s6, s5,s1,则栈的容量至少应该是() A.2 B. 3 C. 5 D.6 5. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。 A. |top[2]-top[1]|=0 B. top[1]+1=top[2] C. top[1]+top[2]=m D. top[1]=top[2] 6. 执行完下列语句段后,i值为:() int f(int x) { return ((x>0) ? x* f(x-1):2);} int i ; i =f(f(1)); A.2 B. 4 C. 8 D. 无限递归 7. 表达式3* 2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。 A. 3,2,4,1,1;(*^(+*- B. 3,2,8;(*^- C. 3,2,4,2,2;(*^(- D. 3,2,8;(*^(- 8. 用链接方式存储的队列,在进行删除运算时()。 A. 仅修改头指针 B. 仅修改尾指针 C. 头、尾指针都要修改 D. 头、尾指针可能都要修改 9. 递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。 A.队列 B.多维数组 C.栈 D. 线性表 10.设C语言数组Data[m+1]作为循环队列SQ的存储空间, front为队头指针,rear为队尾指针,则执行出队操作的语句为() A.front=front+1 B. front=(front+1)% m C.rear=(rear+1)%(m+1) D. front=(front+1)%(m+1) 11.循环队列的队满条件为 ( ) A. (sq.rear+1) % maxsize ==(sq.front+1) % maxsize; B. (sq.front+1) % maxsize ==sq.rear C. (sq.rear+1) % maxsize ==sq.front D.sq.rear ==sq.front

数据结构栈和队列实验报告

《数据结构》课程实验报告 实验名称栈和队列实验序号实验日期 姓名院系班级学号 专业指导教师成绩 教师评语 一、实验目的和要求 (1)理解栈和队列的特征以及它们之间的差异,知道在何时使用那种数据结构。 (2)重点掌握在顺序栈上和链栈上实现栈的基本运算算法,注意栈满和栈空的条件。 (3)重点掌握在顺序队上和链队上实现队列的基本运算算法,注意循环队队列满和队空的条件。 (4)灵活运用栈和队列这两种数据结构解决一些综合应用问题。 二、实验项目摘要 编写一个程序algo3-1.cpp,实现顺序栈的各种基本运算,并在此基础上设计一个主程序并完成如下功能:(1)初始化栈s; (2)判断栈s是否非空; (3)依次进栈元素a,b,c,d,e; (4)判断栈s是否非空; (5)输出栈长度; (6)输出从栈顶到栈底元素; (7)输出出栈序列; (8)判断栈s是否非空; (9)释放栈。 编写一个程序algo3-3.cpp,实现顺序环形队列的各种基本运算,并在此基础上设计一个主程序并完成如下功能: (1)初始化队列q; (2)判断队列q是否非空; (3)依次进队列a,b,c; (4)出队一个元素,输出该元素; (5)输出队列q的元素个数; (6)依次进队列元素d,e,f; (7)输出队列q的元素个数; (8)输出出队序列; (9)释放队列。

三、实验预习内容 栈的顺序存储结构及其基本运算实现(初始化栈,销毁栈,求栈的长度,判断栈是否为空,进栈,取栈顶元素,显示栈中元素) 队列的顺序存储结构及其基本运算实现(初始化队列,销毁队列,判断队列是否为空,入队列,出队列) 三、实验结果与分析 3-1 #define maxsize 100 #include #include using namespace std; typedef char ElemType; typedef struct { ElemType data[maxsize]; int top; } SqStack; void InitStack(SqStack * &s) { s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1; } int StackEmpty(SqStack *s) { return(s->top==-1); } int Push(SqStack *&s,ElemType e) { if(s->top==maxsize-1) return 0; s->top++; s->data[s->top]=e; return 1; } int Pop(SqStack *&s,ElemType &e) { if(s->top==-1) return 0; e=s->data[s->top];

新人教版小学六年级数学上册圆的认识单元知识结构框架

新人教版小学六年级数学上册“圆的认识”单元知识结构框架在各个学段中,《课程标准》安排了“数与代数”、“空间与图形”、“统计与概率”、“实践与综合应用”四个学习领域。 在空间与图形方面,本册教材安排了《位置》、《圆》两个单元。在《圆》这一单元中,通过对曲线图形——圆的特征和有关知识的探索与学习,初步认识研究曲线图形的基本方法,促进学生空间观念的进一步发展。下面,我将从以下几个方面来谈我对这一单元教材的认识和我的主要教学策略: 一、课标要求: 关于圆,在第一学段(1—3年级)的要求是: 1.会辨认长方形、正方形、三角形、平行四边形、圆等简单图形。 2.能用简单的语言描述它的特征。初步了解它是轴对称图形。 3.能对简单图形进行分类并会用各种平面图形拼图。 在本学段,即第二学段(4—6年级)的要求是: 1.通过观察、操作,认识圆,掌握圆的特征,会用圆规画圆; 2.知道圆是轴对称图形,进一步认识轴对称图形,能运用平移、轴对称和旋转设计简单的图案。 3.探索并掌握圆的周长和面积公式,能够正确计算圆的周长和面积。 4.经历从实际生活中发现问题、提出问题、解决问题的过程,体会圆的知识在生活中的广泛应用,初步形成综合运用数学知识解决问题的能力。 圆是一种曲线图形,它同直线图形有不同的特点。在本册之前各册教材出现的平面图形都是直线图形。所以“圆”的教学是学生系统认识曲线图形特征的开始。在低年级的教学中虽然也出现过圆,但只是直观的认识,比如:

人教版一年级上册第四、五单元《认识物体和图形》《分类》,初步认识圆并能够对基本图形进行分类。 一年级下册第三单元《图形的拼组》,尝试用不同的立体图形或平面图形进行设计和拼组。 二年级上册第五单元《观察物体》,初步了解圆是轴对称图形,并知道它有无数条对称轴。 本册的第四单元《圆》,要认识圆的基本特征,会画圆,会计算圆的周长和面积并会灵活应用这些知识解决实际问题。从学习直线图形到学习曲线图形,不论是内容本身、还是研究问题的方法,都有所变化,教材通过对圆的研究,使学生初步认识研究曲线图形的基本方法,同时,也渗透了曲线图形与直线图形的内在联系。在这一单元里,教材还利用学生已有的对轴对称图形的初步认识探讨圆的轴对称特点,给出轴对称图形的概念,使学生关于轴对称图形的知识系统化,从而更好地发展学生的空间观察。 这一单元是一年级认识的基本平面图形(圆形)的延伸,也是学习六年级下册第二单元《圆柱与圆锥》相关知识的基础,更是学生在第三学段学习更多相关几何知识的起点,可见这部分知识的重要性。 三、知识结构: 本单元教材主要内容有:认识圆、圆的周长和圆的面积等。 圆的认识包括圆的基本特征(认识圆心、半径和直径、半径和直径的长度间的关系)、掌握用圆规画圆的方法(加深对圆的认识)、圆是轴对称图形,有无数条对称轴。 圆的周长和面积计算公式的教学,加强了启发性和探索性,注意让学生动手操作,使学生在实践活动中通过交流、思考来探究圆的周长和面积计算方法,逐步导出和掌握计算公式。对于圆的周长,让学生通过用线绕一绕,把圆放在直尺上滚一滚等方法来测量,然后再通过填表,运用不完全归纳法来探寻周长与直径的比值的规律,从而引出圆周率的概念。对于

相关文档
最新文档