C语言中有关链表部分的两道题求助 10
1.字母存储题目内容:使用单项链表存储一组字母{a,b,c,d,c,b,a},输入序号输出字母,输入字母输出最后一次出现的序号,越界则输出N。输入格式:序号或字母输出格式...
1.字母存储
题目内容:
使用单项链表存储一组字母{a, b, c, d, c, b , a},输入序号输出字母,输入字母输出最后一次出现的序号,越界则输出N。
输入格式:
序号或字母
输出格式:
字母或序号
输入样例:
2
输出样例:
c
输入样例:
c
输出样例:
4
输入样例:
8
输出样例:
N
2.字母合并
题目内容:
实现两个由单项链表存储的有序字母数据的合并, 如有重复的则只保留一个。
例如:给定{a, c ,f}, { b, e, g}合并后结果为{a, b, c , e , f , g}。
输入格式:
两个有序字母数据
输出格式:
合并后的字母数据
输入样例:
a b c
d e f
输出样例:
a b c d e f
输入样例:
e f g
e g m
输出样例:
e f g m 展开
题目内容:
使用单项链表存储一组字母{a, b, c, d, c, b , a},输入序号输出字母,输入字母输出最后一次出现的序号,越界则输出N。
输入格式:
序号或字母
输出格式:
字母或序号
输入样例:
2
输出样例:
c
输入样例:
c
输出样例:
4
输入样例:
8
输出样例:
N
2.字母合并
题目内容:
实现两个由单项链表存储的有序字母数据的合并, 如有重复的则只保留一个。
例如:给定{a, c ,f}, { b, e, g}合并后结果为{a, b, c , e , f , g}。
输入格式:
两个有序字母数据
输出格式:
合并后的字母数据
输入样例:
a b c
d e f
输出样例:
a b c d e f
输入样例:
e f g
e g m
输出样例:
e f g m 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
typedef struct Char_{
char ch;
char intch;
struct Char_ *next;
}CHAR_;
int main(void)
{
CHAR_ *node = NULL;
CHAR_ *ch_ = NULL;
CHAR_ *hear = NULL;
char zimu = 'a';
char panduanzimu;
char record;
for (; zimu != 'e'; zimu++)
{
ch_ = (CHAR_ *)malloc(sizeof(CHAR_));
if (ch_ == NULL)
{
exit(0);
}
ch_->ch = zimu;
ch_->next = NULL;
if (node == NULL)
{
node = ch_;
}
else{
node->next = ch_;
node = node->next;
}
if (hear == NULL)
{
hear = node;
}
}
for (zimu -= 2; zimu != ('a' - 1); zimu--)
{
ch_ = (CHAR_ *)malloc(sizeof(CHAR_));
if (ch_ == NULL)
{
exit(0);
}
ch_->ch = zimu;
ch_->next = NULL;
node->next = ch_;
node = node->next;
}
for (node = hear, zimu = '0'; node != NULL; node = node->next, zimu++)
{
node->intch = zimu;
}
scanf("%c", &panduanzimu);
node = hear;
if (panduanzimu >= '0'&&panduanzimu <= '6')
{
while (node != NULL)
{
if (panduanzimu == node->intch)
{
printf("%c", node->ch);
break;
}
node = node->next;
}
}
else if (panduanzimu >= 'a'&&panduanzimu <= 'd')
{
while (node != NULL)
{
if (panduanzimu == node->ch)
{
record = node->intch;
}
node = node->next;
}
printf("%c", record);
}
else{
printf("N");
}
node = hear;
while (node != NULL)
{
hear = node->next;
free(node);
node = hear;
}
return 0;
}
#include<stdlib.h>
typedef struct Char_{
char ch;
char intch;
struct Char_ *next;
}CHAR_;
int main(void)
{
CHAR_ *node = NULL;
CHAR_ *ch_ = NULL;
CHAR_ *hear = NULL;
char zimu = 'a';
char panduanzimu;
char record;
for (; zimu != 'e'; zimu++)
{
ch_ = (CHAR_ *)malloc(sizeof(CHAR_));
if (ch_ == NULL)
{
exit(0);
}
ch_->ch = zimu;
ch_->next = NULL;
if (node == NULL)
{
node = ch_;
}
else{
node->next = ch_;
node = node->next;
}
if (hear == NULL)
{
hear = node;
}
}
for (zimu -= 2; zimu != ('a' - 1); zimu--)
{
ch_ = (CHAR_ *)malloc(sizeof(CHAR_));
if (ch_ == NULL)
{
exit(0);
}
ch_->ch = zimu;
ch_->next = NULL;
node->next = ch_;
node = node->next;
}
for (node = hear, zimu = '0'; node != NULL; node = node->next, zimu++)
{
node->intch = zimu;
}
scanf("%c", &panduanzimu);
node = hear;
if (panduanzimu >= '0'&&panduanzimu <= '6')
{
while (node != NULL)
{
if (panduanzimu == node->intch)
{
printf("%c", node->ch);
break;
}
node = node->next;
}
}
else if (panduanzimu >= 'a'&&panduanzimu <= 'd')
{
while (node != NULL)
{
if (panduanzimu == node->ch)
{
record = node->intch;
}
node = node->next;
}
printf("%c", record);
}
else{
printf("N");
}
node = hear;
while (node != NULL)
{
hear = node->next;
free(node);
node = hear;
}
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询