【单选题】【消耗次数:1】
假定一个链表的表头指针为f,结点结构为(data,next),则向该链表的表头插入一个由p所指向的结点时,应执行的操作为p->next=f和( )。
p=f->next
f=p->next
f=p
f->next=p
参考答案:
复制
纠错
相关题目
【单选题】 假定一个链表的表头指针为f,结点结构为(data,next),则向该链表的表头插入一个由p所指向的结点时,应执行的操作为p-next=f和( )。
①  p=f-next
②  f=p-next
③  f=p
④  f-next=p
【单选题】 若有以下定义:structnode{intdata;structnode*next;}structnode*p;已建立如下图所示的链表:┌──┬──┐┌──┬──┐┌──┬──┐p→│data│next┼→│data│next┼→...→│data│NULL│└──┴──┘└──┴──┘└──┴──┘指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是()。
①  while(p!=NULL){printf("%d,",p-p++;}
②  while(p){printf("%d,",p.data);p=p-}
③  for(;p!=NULL;p++)printf("%d,",p
④  -for(;p;p=p-next)printf("%d,",(*p).data);
【单选题】 若有以下定义:structnode{intdata;structnode*next;}*p,*q;已建立如下图所示的链表:┌──┬──┐┌──┬──┐...p→│data│next┼→│data│NULL│└──┴──┘└──┴──┘┌──┬──┐q→│data│next│└──┴──┘不能将指针q所指结点连到上图所示链表末尾的语句是()。
①  q-next=NULL;p=p-p-next=q;
②  p=p-p-next=q;q-next=NULL;
③  p=p-q-next=p-p-next=q;
④  q-next=p-p=p-p-next=q;
【单选题】 在一个链队中,假设f和r分别为队头和队尾指针,p指向一个已生成的结点,现要为该结点的数据域赋值e,并使结点入队的运算为p-data=e; p-next=NULL ; 和( )。
①  A . f-next=p; f=p;
②  B. r-next=p;r=p;
③  C. p-next=r;r=p;
④  D. p-next=f;f=p;
【判断题】 设有一个带头结点的,头指针为head的单向链表,p指向表中某一个结点,且有p-next= L,现要删除头结点,并使该单向链表构造成单向循环链表,通过操作head=head- p-next= head;。
①  正确
②  错误
【单选题】 若有以下定义:structnode{intdata;structnode*next;}structnodem,n,k,*head,*p;已建立如下图所示的链表:mnk┌──┬──┐┌──┬──┐┌──┬──┐head→│data│next┼→│data│NULL│p→│data│next│└──┴──┘└──┴──┘└──┴──┘指针head指向变量m,m.next指向变量n,p指向变量k,不能把结点k插到m和n之间形成新链表的程序段是()。
①  p-next=head-m.next=p;
②  (*head).next=p;(*p).next=
③  head-next=p-next=head
④  -m.next=k.next=
【判断题】 在双向链表中,要删除p所指的结点,其中所用的一条语句(p-prior)-next=p-next;的功能是:使P所指结点的直接前驱的右指针指向P所指结点的直接后继。
①  正确
②  错误
【判断题】 设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针。设p指向要入队的新结点(该结点已被赋值),则入队操作为rear-next=p; p = rear;
①  正确
②  错误
【单选题】 若按如下定义,函数link的功能是()。其中head指向链表首结点,整个链表结构如下图:┌──┬─┐┌──┬─┐┌──┬──┐head→│data│┼→│data│┼→…→│data│NULL│└──┴─┘└──┴─┘└──┴──┘structnode{intdata;structnode*next;};voidlink(structnode*head){structnode*p=head;while(p!=NULL){if(p-data%2==1)printf("%d",p-p=p-}}
①  计算链表head中结点的个数
②  遍历链表head,输出表中值为奇数的元素
③  删除链表head中的所有结点
④  插入一个新元素到链表head中
【单选题】 若有定义:structnode{intdata;structnode*next;};已建立如下图所示的链表:┌─┬─┐┌─┬─┐┌─┬─┐head→│2│┼→│4│┼→…→│28│┼→NULL└─┴─┘└─┴─┘└─┴─┘指针head指向链表首结点,以下函数的功能是()。voidfun(structnode*head){structnode*p=head;while(1){p=p-printf("%d",p-data);if(!p)break;}}
①  显示单向链表中第一个结点的数据
②  显示单向链表中最后一个结点的数据
③  显示单向链表中的所有数据
④  显示单向链表中除第一个结点外的所有数据
随机题目
【单选题】 对于长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素的比较次数为( )。
①  3
②  4
③  5
④  6
【单选题】 对于长度为9的顺序存储的有序表,若采用折半查找,在等概率情况下的平均查找长度为( )的9分之一。
①  20
②  18
③  25
④  22
【单选题】 若要对1000个元素排序,要求既快又稳定,则最好采用( )方法。
①  直接插入排序
②  归并排序
③  堆排序
④  快速排序
【单选题】 若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为( )。
①  n
②  n+1
③  (n-1)/2
④  (n+1)/2
【单选题】 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要( )。
① 
② 
③  相同
④  不好说
【单选题】 在对n个元素进行快速排序的过程中,最坏情况下的时间复杂度为( )。
①  O(1)
②  O(log2(n))
③  O(n的平方)
④  O(nlog2(n))
【单选题】 若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为( )。
①  j-i
②  i-j-1
③  i-j
④  i-j+1
【单选题】 若要从1000个元素中得到10个最小值元素,最好采用( )方法。
①  直接插入排序
②  简单选择排序
③  堆排序
④  快速排序
【单选题】 非线性结构是数据元素之间存在一种:( )。
①  一对多关系
②  多对多关系
③  多对一关系
④  一对一关系
【单选题】 假定对元素序列(7, 3, 5, 9, 1, 12)进行堆排序,并且采用小根堆,则由初始数据构成的初始堆为( )。
①  1, 3, 5, 7, 9, 12
②  1, 3, 5, 9, 7, 12
③  1, 5, 3, 7, 9, 12
④  1, 5, 3, 9, 12, 7