q是p的三元前驱体,在q和p之间插入s,不是应该先s→next=p 然后q→next=s么,

导读:intexp;//指数structPNode*next;}*PLink;PLinkCreatPoly(){//建立多项式head=(PLink)malloc(sizeof(structPNode));r=head;printf(”输入系数和指数:”);scanf(&n,&m);while(n!=0)//若n=0则退出循环{s=(Plink)malloc(si
struct PNode *next;}*PLink; PLink CreatPoly( ) {//建立多项式
head=(PLink)malloc(sizeof(struct PNode));
printf(”输入系数和指数:”); scanf(&n,&m);
while(n!=0)
//若n=0则退出循环
{s=(Plink)malloc(sizeof(struct PNode));
s->coef=n;s->exp=m;r->next=s;r=s;//把s链接到r的后面
printf(”输入系数和指数:”);
scanf(&n,&m);
r->next=NULL;head=head―>next;
//删除头结点
return head; } 19.根据上题的多项式链表结构,编写一个过程实现两个多项式相加的运算。 答:分析:对所有指数相同的项,将其对应系数相加,若和不为0,则构造新“和多项式”的结点;将所有指数不同的项复制到和多项式中。 Plink
add(PLink pa,PLink pb) {//多项式相加
p=pa;q=pb;pc=(PLink)malloc(sizeof(struct PNode));r=pc;
while(p!=NULL&&q!=NULL)
{if(p->exp==q->exp)//两结点的指数相同时,将两系数相加生成新结点插入c中
{x=p->coef+q->coef;
if(x!=0){s=(PLink)malloc(sizeof(struct
PNode));s->coef=x; 26 s->exp=p->exp;
r->next=s; r=s; }
p=p->next;q=q->next;}
if(p->exp>q->exp)//两结点的指数不同时,将较小系数的结点复制成新结点插入c中
{s=(PLink)malloc(sizeof(struct PNode));s->coef=q->coef;s->exp=q->exp;
r->next=s; r=s;q=q->next;}
else {s=(PLink)malloc(sizeof(struct PNode));s->coef=p->coef; s->exp=p->exp;r->next=s;r=s;p=p->next; }
while(p!=NULL)
//复制A的余下部分
{s=(PLink)malloc(sizeof(struct PNode));s->coef=p->coef;s->exp=p->exp;
r->next=s:r=s;p=p->next;}
while(ql=NULL)
//复制B的余下部分
{s=(PLink)malloc(sizeof(struct PNode));s->coef=q->coef;s->exp=q->exp;
r->next=s;r=s;q=q->next; }
r->next=NULL;
//最后结点的next域置为空
s=pc;pc=pc->next;
//删除c的头结点
} 20.约瑟夫环问题:任给正整数n、k,按下述方法可得排列1,2,?,n的一个置换:将数字l,2,?,n环形排列,按顺时针方向从1开始计数;计满k时输出该位置上的数字(并从环中删去该数字),然后从下一个数字开始继续计数,直到环中所有数字均被输出为止。例如,n=10、k=3时,输出的置换是3,6,9,2,7,1,8,5,10。 27 分别以数组和以不带头结点的、已知尾指针的单循环链表为存储结构解决上述问题。 答:void
Js1(int A[n],int N,iht K)
{//以数组为存储结构
for(i=0;i<N;i++)A[I]=1;
//用1标志在环上的结点
for(i=0;i<N; i++)
while(s<K) {j=(j%N)+1;s=s+A[j-1];}
printf(”%d”,j);
A[j-1]=0;//将计满k值的数字输出,并将其位置标为0表明已删除
} void Js2(LinkedList last,int N,int K) {//以不带头结点的、已知尾指针的单循环链表为存储结构
q=p->next;
//此时q为头结点fp为q的前驱
while(N>0)
{for(j=2;jnext;}
printf(”%d”,q->data); N--;
p->next=q->
q=p―>next;
栈和队列 一、选择题
1.设有一顺序栈s,元素s1,s2,s3,s4,s5,s6依次入栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是(
D.6 2.若一个栈的输入序列是a、b、c,则通过入栈、出栈操作可能得到a、b、c的不同排列个数为(
D.7 3.设有一顺序栈已经含有3个元素,如图3-1所示,元素a4正等待入栈。以下序列中不可能出现的出栈序列是(
*A.a3,a1,a4,a2
B.a3,a2,a4,a1
C.a3,a4,a2,a1
D.a4,a3,a2,a1
4.和顺序栈相比,链栈有一个比较明显的优势是(
*A.通常不会出现栈满的情况
B.通常不会出现栈空的情况
C.插入操作更容易实现
D.删除操作更容易实现 5.若一个栈的输入序列是1,2,3,4,?,n,输出序列的第一个元素是n,则第i个输出元素是(
D.n-i-1 6.以下说法正确的是(
*A.因链栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况
B.因顺序栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况
C.对于链栈而言,在栈满状态下,如果再进行入栈操作,则会发生“上溢”
D.对于顺序栈而言,在栈满状态下,如果再进行入栈操作,则会发生“下溢”
29 7.顺序队列的入队操作应为( sq.rear初值为-1 )。
*A.sq.rear=sq.rear+1;sq.data[sq.rear]=x;
B.sq.data[sq.rear]=x;sq.rear=sq.rear+1;
C.sq.rear=(sq.rear+1)%maxsize;sq.data[sq.rear+1]=x;
D.sq.data[sq.rear]=x;sq.rear=x;
sq.rear=(sq.rear+1)%maxslze; 8.循环队列的入队操作应为(sq.rear初值为-1 )。
A.sq.rear=sq.rear+1;sq.data[sq.rear]=x
B.sq.data[sq.rear]=x;sq.rear=sq.rear+l;
*C.sq.rear=(sq.rear+1)%maxsize;sq.data[sq.rear]=x;
D.sq.data[sq.rear]=x;sq.rear=(sq.rear+1)%maxsize; 9.顺序队列的出队操作为(sq. front初值为-1 )。
A.sq.front=(sq.front+1)%maxsize;
*B.sq.front=sq.front+1;
C.sq.rear=(sq.rear+1)%maxsize;
D.sq.rear=sq.rear+1; 10.循环队列的出队操作为(sq. front初值为-1 )。
*A.sq.front=(sq.front+1)%maxsize;
B.sq.front=sq.front+1;
C.sq.rear=(sq.rear+1)%maxsize;
D.sq.rear=sq.rear+l; 11.循环队列的队满条件为(
A.(sq.rear+1)%maxsize==(sq.front+1)%maxsize;
B.(sq.rear+1)%maxsize==sq.front+1;
*C.(sq.rear+1)%maxsize==sq.front;
D.sq.rear==sq.front; 12.循环队列的队空条件为(
A.(sq.rear+1)%maxsize==(sq.front+1)%maxsize;
B.(sq.rear+1)%maxsize==sq.front+1;
C.(sq.rear+1)%maxsize==sq.front;
*D.sq.rear==sq.front; 13.如果以链表作为栈的存储结构,则出栈操作时(
A.必须判别栈是否满
B.判别栈元素的类型
*C.必须判别栈是否空
D.对栈 30 包含总结汇报、IT计算机、党团工作、旅游景点、考试资料、计划方案、出国留学、外语学习以及《计算机软件技术基础》课后题答案等内容。本文共10页
相关内容搜索以下试题来自:
单项选择题在一个单链表中,已知q所指结点是p所指结点的直接前趋,若在p,q之间插入s结点,则执行(
)操作。A.s―>next=p―>p―>next=s;B.q―>next=s;s―>next=p;C.p―>next=s―>s―>next=p;D.p―>next=s;s―>next=q;
为您推荐的考试题库
你可能感兴趣的试题
1A.顺序查找B.二分查找C.二叉排序树D.B-树上的查找2A.索引文件B.顺序文件C.散列文件D.多关键字文件3A.归并排序B.插入排序C.快速排序D.选择排序4A.每个结点所代表的数据元素都一样B.每个结点所代表的数据元素包含的数据项的个数要相等C.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致D.结点所代表的数据元素有同一特点5A.5,4,3,2,1B.4,5,1,2,3C.1,2,3,4,5D.不确定
热门相关试卷
最新相关试卷您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
数据结构 期末考试试卷.doc 13页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:186 &&
数据结构 期末考试试卷
你可能关注的文档:
··········
··········
一、选择题
1.算法具有五个重要特性不包括__D____。
2.在数据结构中,从逻辑上可以把数据结构分成____C___。
A动态结构和静态结构
B紧凑结构和非紧凑结构 C线性结构和非线性结构
D内部结构和外部结构
3.一个向量(即一批地址连续的存储单元)第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是_B_____。
线性表的顺序存储结构是一种____A__的存储结构。
线性表若采用链式存储结构时,要求内存中可用存储单元的地址____D___。
A必须是连续的
B部分地址必须是连续的C一定是不连续的
D连续或不连续都可以
6.不带头结点的单链表head为空的判定条件是_A___。 A. head= =NULL
B. head-&next= =NULL C. head-&next= =head
D. head!=NULL 7. 带头结点的单链表head为空的判定条件是__B__。 A. head= =NULL
B. head-&next= =NULL C. head-&next= =head
D. head!=NULL 8. 非空的循环单链表head的尾结点(由p所指向)满足_C___。 A. p-&next= =NULL
B. p= =NULL C. p-&next= =head
D. p= =head
9. 在双向循环链表的p所指结点之后插入s所指结点的操作是__D__。 A. p-&right=s;
s-&left=p;
p-&right-&left=s;
s-&right=p-& B. p-&right=s;
p-&right-&left=s;
s-&left=p;
s-&right=p-& C. s-&left=p;
s-&right=p-&
p-&right=s;
p-&right-&left=s; D. s-&left=p;
s-&right=p-&
p-&right-&left=s;
p-&right=s;
10. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行_B___。
A. s-&next=p-&
p-&next=s;
D. p-&next=s-&
s-&next=p;
B. q-&next=s;
s-&next=p;
p-&next=s;
s-&next=q;
11. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行__B__。
s-&next=p;
p-&next=s;
B. s-&next=p-&
p-&next=s;
s-&next=p-&
D. p-&next=s;
s-&next=p;
12. 在一个单链表中,若删除p所指结点的后续结点,则执行__A__。
A. p-&next= p-&next-&next;
p-&next= p-&next-&next;
C. p-&next= p-&
D. p= p-&next-&next;
13. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是_C___。
14. 若已知一个栈的入栈序
正在加载中,请稍后...经典数据结构笔试题和面试题答案及答案分享
发表时间: 15:25:03 文章来源:
《经典数据结构笔试题和面试题答案及答案分享》是有三思教育网()为你整理收集:
分享:典型的数据结构笔试题。 1. 线性表的顺序存储结构是一种 的存储结构,而链式存储结构是一种___的存储结构。 A.随机存取 B.索引存取 C.顺序存取 D.散列存取 2. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址___。 A. 必须是连续的 B. 部分地址必须是连续的 C. 一定是不连续的 D. 连续或不连续都可以 3. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作: q= while (q-&next!=p) q=q-& s= new N s-&data=e; q-&next= ; //填空 s-&next= ; //填空 4. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。 A. s-&next=p-& p-&next=s; B. p-&next=s-& s-&next=p; C. q-&next=s; s-&next=p; D. p-&next=s; s-&next=q; 5. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行____。 A. s-&next=p; p-&next=s; B. s-&next=p-& p-&next=s; C. s-&next=p-& p=s; C. p-&next=s; s-&next=p; 6. 在一个单链表中,若删除p所指结点的后续结点,则执行____。 A. p-&next= p-&next-& B. p= p-& p-&next= p-&next-& C. p-&next= p-& D. p= p-&next-& 7. 链表不具备的特点是 ____ 。 A 可随机访问任何一个元素 B 插入、删除操作不需要移动元素 C 无需事先估计存储空间大小 D 所需存储空间与线性表长度成正比 8. 在一个长度为n的顺序表中删除第i个元素,要移动 个元素。如果要在第i个元素前插入一个元素,要后移( )个元素。 N-I N-I+1 9. 以下关于线性表的说法不正确的是 。 A 线性表中的数据元素可以是数字、字符、记录等不同类型。 B 线性表中包含的数据元素个数不是任意的。 C 线性表中的每个结点都有且只有一个直接前趋和直接后继。 D 存在这样的线性表:表中各结点都没有直接前趋和直接后继。 答案 1.A/C(这题是考察对概念的理解,可参考第7题,&顺序表才能随即存取,而链表不可以&) 2.D 3.q-&next=s; s-&next=p; 4.C 5.B 6.A 7.A(此题绝对选A,因为链表只能根据他的前一个结点才能找到下一个结点,不具备随即访问元素的功能) 8.n-i; n-i+1 9.C相关文章推荐:建设银行笔试考什么(笔试真题)索尼招聘笔试真题分享
以上关于经典数据结构笔试题和面试题答案及答案分享的相关信息是三思教育网收集并且整理,仅为查考。

我要回帖

更多关于 三元前驱体生产厂家 的文章

 

随机推荐