(1)CreateList():正序建立一个含有26个小写英文字母的单链表
(2)ListTransfer():将链表中所有元素的值转变成大写字母
(3)Listprint():显示单链表所有元素,此函数调用2次,分别在ListTransfer()函数调用之前,之后使用
在主函数main()中调用各个函数完成单链表的基本操作
用c语言编程实现单链表的基本操作,有必要的类型说明,并完成下面函数的功能,
答案:4 悬赏:70
解决时间 2021-02-02 09:53
- 提问者网友:霸气大叔
- 2021-02-01 13:58
最佳答案
- 二级知识专家网友:晨与橙与城
- 2021-02-01 14:04
楼主你好
代码具体如下:
#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;
}
希望能帮助你哈
代码具体如下:
#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;
}
希望能帮助你哈
全部回答
- 1楼网友:野性且迷人
- 2021-02-01 15:45
楼上代码中第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");
}
- 2楼网友:我叫很个性
- 2021-02-01 15:38
// 实现下面三个函数实现将一个链表中的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;
}
- 3楼网友:没感情的陌生人
- 2021-02-01 14:09
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;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯