C语言问题求解
题目内容:建立长度为n的单链表,n>0,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。数据类型为...
题目内容:
建立长度为n的单链表,n>0,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。数据类型为字符型。
输入格式:
第一行为链表长度n;
第二行为链表中的n个数据元素的值。
输出格式:
输出为逆置后的链表中的所有数据元素的值。
输入样例:
4
A B C D
输出样例:
D C B A 展开
建立长度为n的单链表,n>0,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。数据类型为字符型。
输入格式:
第一行为链表长度n;
第二行为链表中的n个数据元素的值。
输出格式:
输出为逆置后的链表中的所有数据元素的值。
输入样例:
4
A B C D
输出样例:
D C B A 展开
展开全部
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
struct Node
{
char c;
Node* next = NULL;
};
struct List
{
Node head;
Node* back;
int size = 0;
void pushback(char c)
{
Node* node = new Node;
node->c = c;
if (size == 0)
{
head.next = node;
}
else
{
back->next = node;
}
back = node;
size++;
}
void reverse()
{
Node* t = NULL;
Node* p = back = head.next;
Node* q = head.next->next;
while (q != NULL)
{
t = q->next;
q->next = p;
p = q;
q = t;
}
head.next = p;
back->next = NULL;
}
void show()
{
Node* p = head.next;
for (int i = 0; i < size; i++)
{
printf("%c ", p->c);
p = p->next;
}
printf("\n");
}
};
int main()
{
int n;
scanf("%d", &n);
getchar();
char* arr = new char[n * 2];
scanf("%[^\n]", arr);
List list;
for (int i = 0; i < n * 2; i += 2)
{
list.pushback(arr[i]);
}
list.reverse();
list.show();
}
#include<stdio.h>
struct Node
{
char c;
Node* next = NULL;
};
struct List
{
Node head;
Node* back;
int size = 0;
void pushback(char c)
{
Node* node = new Node;
node->c = c;
if (size == 0)
{
head.next = node;
}
else
{
back->next = node;
}
back = node;
size++;
}
void reverse()
{
Node* t = NULL;
Node* p = back = head.next;
Node* q = head.next->next;
while (q != NULL)
{
t = q->next;
q->next = p;
p = q;
q = t;
}
head.next = p;
back->next = NULL;
}
void show()
{
Node* p = head.next;
for (int i = 0; i < size; i++)
{
printf("%c ", p->c);
p = p->next;
}
printf("\n");
}
};
int main()
{
int n;
scanf("%d", &n);
getchar();
char* arr = new char[n * 2];
scanf("%[^\n]", arr);
List list;
for (int i = 0; i < n * 2; i += 2)
{
list.pushback(arr[i]);
}
list.reverse();
list.show();
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询