编写一个读入一个字符串,把它顺序存入一个顺序表,并按逆序打印的程序。
时间: 2023-06-18 19:02:28 浏览: 51
以下是 Python 语言的实现:
```python
s = input("请输入字符串:") # 读入一个字符串
lst = list(s) # 将字符串转换为列表
print("顺序表存储的结果为:")
for item in lst:
print(item, end=' ')
print()
print("逆序打印的结果为:")
for i in range(len(lst) - 1, -1, -1):
print(lst[i], end=' ')
print()
```
这个程序首先读入一个字符串,然后将其转换为列表存储在顺序表中,依次输出顺序表中的元素,接着使用循环逆序遍历列表,输出逆序结果。
相关问题
编写一个读入一个字符串,把它顺序存入一个顺序表,并按逆序打印的程序。c
以下是一个基于 C 语言的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
typedef struct {
char data[MAX_SIZE];
int length;
} SeqList;
void initList(SeqList *list) {
list->length = 0;
}
void insert(SeqList *list, char element) {
if (list->length == MAX_SIZE) {
printf("List is full.\n");
return;
}
list->data[list->length] = element;
list->length++;
}
void reversePrint(SeqList *list) {
for (int i = list->length - 1; i >= 0; i--) {
printf("%c", list->data[i]);
}
}
int main() {
SeqList list;
initList(&list);
char input[MAX_SIZE];
printf("Enter a string: ");
scanf("%s", input);
for (int i = 0; i < strlen(input); i++) {
insert(&list, input[i]);
}
printf("Reversed string: ");
reversePrint(&list);
return 0;
}
```
首先,我们定义了一个顺序表的结构体 `SeqList`,其中包含了一个字符数组 `data` 和一个整数 `length`,用于存储顺序表中的元素和当前元素个数。然后,我们定义了一些操作顺序表的函数,如 `initList` 用于初始化顺序表,`insert` 用于在顺序表末尾插入元素,`reversePrint` 用于按逆序打印顺序表中的元素。
在 `main` 函数中,我们首先初始化顺序表 `list`,然后读入一个字符串 `input`,并将其顺序存入顺序表中。最后,我们调用 `reversePrint` 函数将顺序表中的元素按逆序打印出来。
注意,这个实现并没有对输入字符串的长度进行限制,因此可能会存在越界的风险。在实际使用中,应该根据具体情况对输入字符串的长度进行检查。
编写一个读入一个字符串,把它顺序存入一个双向链表,并按逆序打印的程序c
以下是一个读入字符串并将其存入双向链表的示例程序,其中使用了指针、动态内存分配和字符串函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node {
char data;
struct node* next;
struct node* prev;
} Node;
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
Node* head = NULL;
Node* tail = NULL;
for (int i = 0; i < strlen(str); i++) {
if (str[i] == '\n') {
break;
}
Node* new_node = (Node*)malloc(sizeof(Node));
new_node->data = str[i];
new_node->next = NULL;
if (tail == NULL) {
head = new_node;
tail = new_node;
new_node->prev = NULL;
} else {
tail->next = new_node;
new_node->prev = tail;
tail = new_node;
}
}
printf("The string in reverse order is: ");
while (tail != NULL) {
printf("%c", tail->data);
tail = tail->prev;
}
printf("\n");
return 0;
}
```
该程序首先使用 `fgets()` 函数从标准输入读入一个字符串,然后使用循环遍历字符串的每个字符,为每个字符创建一个新的链表节点,并将其添加到链表的末尾。在添加节点时,需要判断链表是否为空,如果为空,则将新节点作为链表的头节点,并将 `head` 和 `tail` 都指向该节点;否则,将新节点添加到链表的末尾,并更新 `tail` 指针。最后,使用循环遍历链表的每个节点,从尾到头输出其中存储的字符,即为字符串的逆序。