更多"[说明] 函数DelA - InsB ( LinkedList La"的相关试题:
[简答题][说明]
函数DelA - InsB ( LinkedList La, LinkedList Lb, int key 1,int key 2,int len)的功能是,将线性表A中关键码为key 1的节点开始的len个节点,按原顺序移至线性表B中关键码为key 2的节点之前。若移动成功,则返回0;否则返回-1。
线性表的存储结构为带头节点的单链表,La为表A的头指针,Lb为表B的头指针。单链表节点的类型定义如下。
typedef struct node
int key;
struct node*next;
*LinkedList;
[C程序]
int DelA_InsB (LinkedLiSt La, LinkedList Lb, int key1,int key2,int len
LinkedList p, q, S, prep, pres;
int k;
if (!La ->next || !Lb ->next || len<=0)
return-l;
p = La->next;
prep = La;
while (p && p->key != key1) /* 查找表A中键值为key1的节点 */
prep = p;
p = p->next;
if (!p)
return -1; /* 表A中不存在键值为key1的节点 */
q = p;
k = 1;
while (q && (1) ) /* 在表A中找出待删除的len个节点 */
(2) ;
k++;
if (!q)
return -1; /* 表A中不存在要被删除的len个节点 */
S = Lb ->next;
(3) ;
while
[简答题]【说明】
函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为
typedef struct node
int key;
struct node * next;
*LinkedList;
【函数】
int DelA_InsB ( LinkedList La, LinkdeList Lb,int key1,int key2,,int len)
LinkedList p,q,s,prep,pres;
int k;
if( ! La->next || ! Lb-> next ||| en <=0)return-1;
p = La -> next;prep = La;
while(p&&p- >key != key1) /*查找表A中键值为key1的结点*/
prep = p;p = p -> next;
if( ! p) return - 1; /*在表A中不存在键值为key1的结点*/
q=p;k=1;
while(q && (1) ) /*表A中不存在要被删除的len个结点*/
(2) ;k++;
if( ! q)return -1; /*表A中不存在要被删除的len个结点*/
s = Lb -> next; (3) ;
while(s && s -> key != key2) /*查找表B中键值为key2的结点*/
pres =s;s =s->next;
if( ! s) return - t; /*表B中不存在键
[简答题][说明]
函数DelA - InsB ( LinkedList La, LinkedList Lb, int key 1,int key 2,int len)的功能是,将线性表A中关键码为key 1的节点开始的len个节点,按原顺序移至线性表B中关键码为key 2的节点之前。若移动成功,则返回0;否则返回-1。
线性表的存储结构为带头节点的单链表,La为表A的头指针,Lb为表B的头指针。单链表节点的类型定义如下。
typedef struct node{
int key;
struct node*next;
} *LinkedList;
[C程序]
int DelA_InsB (LinkedLiSt La, LinkedList Lb, int key1,int key2,int len
{ LinkedList p, q, S, prep, pres;
int k;
if (!La ->next || !Lb ->next || len<=0)
return-l;
p = La->next;
prep = La;
while (p && p->key != key1){ /* 查找表A中键值为key1的节点 */
prep = p;
p = p->next;
}
if (!p)
return -1; /* 表A中不存在键值为key1的节点 */
q = p;
k = 1;
while (q && (1) ){ /* 在表A中找出待删除的len个节点 */
(2) ;
k++;
}
if (!q)
return -1; /* 表A中不存在要被删除的len个节点 */
S = Lb ->next;
(3) ;
while (s && s->key != key2){ /* 查找表B中键值为key2的节点 */
pres = s;
s = e->next;
[单项选择]在噪声测量中,用A、B、C网络测出的声级值分别为LA、LB、LC。若LA>LB>LC,则表明噪声集中在( )。
A. 不能确定
B. 高频段
C. 中频段
D. 低频段
[简答题]已知一个线性表,其中的数据元素类型均为整型。现有两个单链表La和Lb,其中La只能存储偶数而Lb只能存储奇数。现想利用La和Lb来存储此线性表。请完成以下问题:
给出算法的主要思想;
[简答题]有两个单链表La和Lb,La中有m个元素,Lb中的元素个数为n。已知两个链表均为递增的单向链表。现想将两个链表归并成一个递增的单向链表,且希望利用原来的结点空间,请回答下列问题:
给出算法的主要思想;
[单项选择]在一次噪声测量中,用A、B、C网络测出噪声的声级值分别为LA、LB、LC。若 LC>LB>LA,则表明噪声集中在( )。
A. 超高频段
B. 高频段
C. 中频段
D. 低频段
[单项选择]
在噪声测量中,用A、B、C网络测出的声级值分别为LA,Lb,Lc。若Lc>Lb>LA,则表明噪声集中在()。
A. 低频段
B. 中频段
C. 高频段
D. 超高频段
[填空题]阅读以下说明和C函数,填补C函数中的空缺。
[说明]
函数numberOfwords(char message[])的功能是计算存储在message字符数组中的一段英文语句中的单词数目,输出每个单词(单词长度超过20时仅输出其前20个字母),并计算每个英文字母出现的次数(即频数),字母计数时不区分大小写。
假设英文语句中的单词合乎规范(此处不考虑单词的正确性),单词不缩写或省略,即不会出现类似don’t形式的词,单词之后都为空格或标点符号。
函数中判定单词的规则是:
(1)一个英文字母串是单词;
(2)一个数字串是单词;
(3)表示名词所有格的撇号(’)与对应的单词看作是一个单词。
除上述规则外,其他情况概不考虑。
例如,句子“The 1990’s witnessed many changes in people’s concepts of conservation”中有10个单词,输出如下:
The
1990’s
witnessed
many
changes
in
people’s
concepts
of
conservation
函数numberOfwords中用到的部分标淮库函数如下所述。
函数原型 | 说明 |
int islower(int ch); | 若ch表示一个小写英文字母,则返回一个非0整数,否则返回0 |
int isupper(int ch): | 若ch表示一个大写英文字母,则返回一个非0整数,否则返回0 |
int isalnum(int ch); | 若ch表示一个英文字母或数字字符,则返回一个非0整数,否则返回0 |
int isabha(int ch); | 若ch表示一个英文字母,则返回
[填空题]阅读以下函数说明和C语言函数,回答问题。 [说明] 函数Node *difference(A,B)用于求两个集合之差C=A-B,即当且仅当e是A中的一个元素,但不是B中的元素时,e是C中的元素。集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之间按递增排列。执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示其链表根据元素之值按递增排列。函数append( )用于在链表中添加节点。 [C函数] typedef struct node int element; struct node *link; Node; Node *A,*B,*C; Node *append(last,e) Node *last; int e; last->link=(Node *)malloc(sizeof(Node)); last->link->element=e; return(last->link); Node *difference(A,B) Node *A,*B; Node *c,*last; C=last=(Node *)malloc(sizeof(Node)); while( (1) ) if(A->element<B->element) last=append(last,A->element); A=A->link: else if( (2) ) A:A->link; B:B->link; elSe (3) ; while( (4) ) last=append(last,A->element); A=A->link: (5) ; last=c; c=c->link; free(last); return(c);
[填空题]阅读以下说明和C函数,填充函数中的空缺。 [说明] 函数Insert _key(*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点DHA树中,返回1。 提示: 二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值; 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值; 左、右子树本身就是二叉查找树。 设二叉查找树采用二叉链表存储结构,链表结点类型定义如下: typedef struct BiTnode int key _value; /*结点的键值,为非负整数*/ struct BiTnode *left,*right; /*结点的左、右子树指针*/ BiTnode,*BSTree; [C函数] int Insert _key(BSTree *root,int key) BiTnode *father=NULL,*p=*root,*s; while(______&&key!=p->key _value)(/*查找键值为key的结点*/ father=p; if(key<p->key _value)p=______; /*进入左子树*/ else p=______; /进入右子树*/ if(p) return 0; /*二叉查找树中已存在键值为key的结点,无需再插入*/ s=(BiTnode *)malloc(______);/*根据结点类型生成新结点*/ if(!s)rettlrn -1; s->key _value=key; s->left=NULL; s->right=NULL; if(!father) ______; /*新结点作为二叉查找树的根结点*/ else /*新结点插入二叉查找树
购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
请选择支付方式
-
微信支付
-
支付宝支付
立即支付
系统将自动为您注册账号
请使用微信扫码支付
截图扫码使用小程序[完全免费查看答案]
请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码
|