更多"链表不具有的特点是______。"的相关试题:
[单项选择]链表不具备的特点是______。
A. 可随机访问任何一个元素
B. 插入、删除操作不需要引动元素
C. 无须事先估计存储空间的大小
D. 所需存储空间与线性表长度成正比
[单项选择]与单向链表相比,双向链表______。
A. 需要较少的存储空间
B. 遍历元素需要的时问较短
C. 较易于访问相邻节点
D. 较易于插入和删除元素
[简答题]单链表L是一个带有头结点的有序链表,设计一个算法判断L是否为按数值递减的链表。如果l是递减链表,那么就返回1,否则返回0。请回答下列问题:
给出算法的主要思想;
[简答题]【说明】
本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个:
creatList( ): 创建从小到大的有序链表。
multiplyList(List L1, Llst L2): 将链表L1和链表L2合并。
print( ): 打印链表。
【C++代码】
#include <iostream>
using namespace std;
class List;
class Node{
friend class List;
public:
Node(int data){
(1) ;
}
private:
int data;
Node *next;
};
class List{
public:
List( ){list=NULL;}
void multiplyList(List L1, List L2);
void creatList( );
void print( );
private:
Node *list;
};
void List::creatList( )
{
Node *p, *u, *pre;
int dara;
list=NULL;
wbile(1){
cout<<"输入链表的一项: (小于零,结束链表) "<<endl;
cin>>data;
if(dara<0)break;//小于零,结束输入
p=list;
while(p !=NULL && dara>p->data){//查找插入点
pre=p;
p=p->next;
}
u= (2) ;
if(p==list)list=u;
else pre->next=u;
(3) ;
}
}
void List::multipl
[多项选择]【说明】
本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个:
creatList( ): 创建从小到大的有序链表。
multiplyList(List L1, Llst L2): 将链表L1和链表L2合并。
print( ): 打印链表。
【C++代码】
#include <iostream>
using namespace std;
class List;
class Node
friend class List;
public:
Node(int data)
(1) ;
private:
int data;
Node *next;
;
class List
public:
List( )list=NULL;
void multiplyList(List L1, List L2);
void creatList( );
void print( );
private:
Node *list;
;
void List::creatList( )
Node *p, *u, *pre;
int dara;
list=NULL;
wbile(1)
cout<<"输入链表的一项: (小于零,结束链表) "<<endl;
cin>>data;
if(dara<0)break;//小于零,结束输入
p=list;
while(p !=NULL && dara>p->data)//查找插入点
pre=p;
p=p->next;
u= (2
[简答题]【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类Node描述,而链表由类List描述。类List的成员函数有以下几个。
①createList( ):创建从小到大的有序链表。
②multiplyList(List L1,List L2):将链表L1和链表L2合并。
③print( );打印链表。
# include <iostream.h>
class List;
class Node
friend class List;
public:
Node(int data)
(1) ;
private:
int data;
Node *next;
;
class List
public:
List( ) list = NULL;
void multiplyList(List L1, List L2);
void createList( );
void print( );
private:
Node *list;
;
void List::createList( )
Node *p, *u, *pm;
int data;
list = NULL;
while (1)
cout<<"输入链表的一项: (小于零,结束链表)"<<end1;
cin >> data;
if(data<0)break; //小于零,结束输入
p = list;
while (p != NULL && data > p->data) //查找插入点
pre = p;
p = p->next;
u= (2) :
if(p==list)
lis
[填空题]下面函数将指针p2所指向的线性链表串接到p1所指向的链表的末端。假定p1所指向的链表非空。请填空。
#define NULL 0
struct link
float a;
struct link *next;
;
concatenate (p1,p2)
struct list *p1,*p2;
if(p1->next==NULL)
p1->next=p2;
else
concatenate(______,p2);
[单项选择]干啰音较湿啰音有的特点是()
A. 呼气时明显
B. 吸气时或吸气末明显
C. 咳嗽后可减轻或消失
D. 性质不易变
E. 部位恒定
[单项选择]将长度为,z的单链表链接在长度为m的单链表之后的算法的时间复杂度为 。
A. O(1)
B. O(n)
C. O(m)
D. O(m+n)
[填空题]树有三种常用的存储结构,即孩子链表法、孩子兄弟链表法和______。
[填空题]以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。
struct link
char data;
struct link * next;
struct link * p,* first;
|
int count=0;
p=first;
while( 【17】 )
【18】 ;
p= 【19】 ;
[填空题]以下程序把3个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。
#include<stdio.h>
struct node
int data; struct node *next; ;
typedef struct node NODETYPE;
main( )
NODETYPE a, b, c, *h, *p; a.data=10; b.data=20; c.data=30; h=&a;
b.next=&b; b.next=&c; c.next=’/0’;
p=h;
while(p)printf("%d", p->data);______;
[填空题]下列程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空。
#include<stdio.h>
struct node
int data;struct node*next;;
typede f struct node NODETYPE;
main( )
NODETYPE a,b,c*h,*p;
- a.data=10;
- b.data=20;
- c.data=30;h=&a;a.next=&b;b.next=&c;c.next=’/0’;
p=h;
while(p)printf("%d,",p->data);______;
printf("/n"):
[单项选择]在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是()。
A. O(1)
B. O(n)
C. O(nlogn)
D. O(n2)