中易网

用c语言编程实现单链表的基本操作,有必要的类型说明,并完成下面函数的功能,

答案:4  悬赏:70  
解决时间 2021-02-02 09:53
(1)CreateList():正序建立一个含有26个小写英文字母的单链表
(2)ListTransfer():将链表中所有元素的值转变成大写字母
(3)Listprint():显示单链表所有元素,此函数调用2次,分别在ListTransfer()函数调用之前,之后使用
在主函数main()中调用各个函数完成单链表的基本操作
最佳答案
楼主你好
代码具体如下:
#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
char ch;
struct node *next;
}LinkList;

void CreatList(LinkList * &h)
{
LinkList *p;
LinkList *r=h;//尾结点 开始指向头结点
int i=0;
for(;i<26;i++)
{
p=(LinkList *)malloc(sizeof(LinkList));
p->ch='a'+i;
r->next=p;
r=p;
}
r->next=NULL;
}

void ListTransfer(LinkList *h)
{
LinkList *p=h->next;
while(p)
{
(p->ch)-='a'-'A';
p=p->next;
}
}

void ListPrint(LinkList *h)
{
LinkList *p=h->next;
while(p)
{
putchar(p->ch);
p=p->next;
}
printf("\n");
}

int main()
{
LinkList *head;
head=(LinkList *)malloc(sizeof(LinkList));

CreatList(head);
printf("转换前:\n");
ListPrint(head);
ListTransfer(head);
printf("转换后:\n");
ListPrint(head);
return 0;
}

希望能帮助你哈
全部回答
楼上代码中第8行代码有误,应该写成: void CreatList(LinkList *h) 下面是我写的: #include<stdio.h> #include<malloc.h> typedef struct node { char c; struct node *next; }LinkList; void *CreateList() { LinkList *p1,*p2,*head; int i; char ch; p1=p2=head=(LinkList *)malloc(sizeof(LinkList)); p1->c=97; for(i=0;i<=24;i++) { p1=(LinkList *)malloc(sizeof(LinkList)); p1->c=98+i; p2->next=p1; p2=p1; } return head; } void Listprint(LinkList *head) { LinkList *p; int i; p=head; for(i=0;i<=25;i++) { printf("%c ",p->c); p=p->next; } printf("\n\n"); } void *ListTransfer(LinkList *head) { LinkList *p; int i; p=head; for(i=0;i<=25;i++) { p->c=p->c-32; //转化为大写 p=p->next; } return head; } void main() { LinkList *head; head=CreateList(); printf("Output words a~z in lowercase\n"); Listprint(head); //在ListTransfer函数调用之前调用Listprint函数,输出a~z小写字母 head=ListTransfer(head); printf("Output words A~Z in capital\n"); Listprint(head); //在ListTransfer函数调用之后调用Listprint函数,输出转换后a~z大写字母 printf("\n"); }
// 实现下面三个函数实现将一个链表中的26个英文字母由小写变为大写,并各自输出。 //------------ //CreateList() 创建一个链表纪录26个小写的英文字母 //ListTransfer() 将链表中个各个节点有小写变为大写 //Listprint() 输入链表 //------------ # include <stdio.h> # include <stdlib.h> typedef struct A { char c; struct A *pnext; }YW,*PYW; PYW CreateList() { int i=0; PYW head=NULL,pnew=NULL,pwei=NULL; head = (PYW)malloc(sizeof(YW)); if(!head) { printf("内存分配失败!!!\n"); exit(0); } head->c = 0; head->pnext = NULL; pwei = head; for(i='a';i<'z'+1;i++) { pnew = (PYW)malloc(sizeof(YW)); if(!pnew) { printf("内存分配失败!!!\n"); exit(0); } pnew->c = i; pnew->pnext = NULL; pwei->pnext = pnew; pwei = pnew; } return head; } void ListTransfer(PYW head) { PYW p = head->pnext; while(p) { p->c -= 32; p = p->pnext; } return; } void ListPrint(PYW head) { PYW p = head->pnext; while(p) { printf("%c ",p->c); p = p->pnext; } return; } int main(void) { PYW p = NULL; p = CreateList(); ListPrint(p); printf("\n"); ListTransfer(p); ListPrint(p); printf("\n"); return 0; }
typedef struct node{ int dm; struct node *next; } node; node *rev(node *h) { node *nh=null,*a,*b=null; a=h; while (a) { b=a->next; a->next=nh; nh=a; a=b; } return nh; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
贵州留一手烤鱼在什么地方啊,我要过去处理事
宜宾公交运行科电话
蚊子是怎么飞进蚊帐的
手游梦幻西游活力怎么增长的快
词语,飞快什么
编写程序在窗体上输出如下图形:(不能用连续
泰源百货这个地址在什么地方,我要处理点事
一汽大众三次维修是否给换车
工程管理书籍
掌心了咋去掉什么旁加什么旁可以变一个字
中国移动陵海路现代通信特约代理点这个地址在
尼康70-300VR拍毕业照+人身背景虚化搞得定不
西昌什么地方可以用信用卡消费
lol克烈天多蓝水多绿下一句是什么
茶饭社在哪里啊,我有事要去这个地方
推荐资讯
西北民族大学老师帮下忙!!
单双排模式和灵活排位的区别是什么
时风新能源电动轿车我想知道这个在什么地方
请大家帮我一个阅读题 文章是狄斯尼的(勇气
银色黎明军需官卖的空火盆是干吗用的?拜托各
中通快递查询单号查询732875187351。查不到跟
老胖牛羊肉店怎么去啊,有知道地址的么
欣联超市我想知道这个在什么地方
宝仁电力铁路器材公司地址在什么地方,想过去
爱婴奶粉专卖我想知道这个在什么地方
好邻居酒店这个地址在什么地方,我要处理点事
很急!!!!线切割高频不断!!!
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?