这是一个很简单的算法,可以使用循环队列来实现。具体步骤如下: 1. 定义一个循环队列,队列中存储数字字符; 2. 从键盘输入一序列字符,逐个判断字符类型; 3. 若字符为数字字符,则将其进队; 4. 若字符为小写字母,则将队首元素出队; 5. 若字符为其他字符,则表示输入结束,退出循环。 代码实现如下: ``` #include <stdio.h> #include <ctype.h> #define MAX_SIZE 100 typedef struct { char data[MAX_SIZE]; int front, rear; } Queue; void initQueue(Queue *q) { q->front = q->rear = ; } int isEmpty(Queue *q) { return q->front == q->rear; } int isFull(Queue *q) { return (q->rear + 1) % MAX_SIZE == q->front; } void enQueue(Queue *q, char x) { if (isFull(q)) { printf("Queue is full.\n"); return; } q->data[q->rear] = x; q->rear = (q->rear + 1) % MAX_SIZE; } char deQueue(Queue *q) { if (isEmpty(q)) { printf("Queue is empty.\n"); return '\'; } char x = q->data[q->front]; q->front = (q->front + 1) % MAX_SIZE; return x; } int main() { Queue q; initQueue(&q); char c; while ((c = getchar()) != EOF) { if (isdigit(c)) { enQueue(&q, c); } else if (islower(c)) { deQueue(&q); } else { break; } } return ; } ```
时间: 2023-05-22 14:01:44 浏览: 181
这个算法很简单,可以使用循环队列来实现。具体步骤如下:
1. 定义一个循环队列,队列中存储数字字符;
2. 从键盘输入一序列字符,逐个判断字符类型;
3. 若字符为数字字符,则将其进队;
4. 若字符为小写字母,则将队首元素出队;
5. 若字符为其他字符,则表示输入结束,退出循环。
代码实现如下:
```python
class Queue:
def __init__(self, size):
self.size = size
self.queue = [None] * size
self.front = 0
self.rear = 0
def is_empty(self):
return self.front == self.rear
def is_full(self):
return (self.rear + 1) % self.size == self.front
def enqueue(self, item):
if self.is_full():
return False
self.queue[self.rear] = item
self.rear = (self.rear + 1) % self.size
return True
def dequeue(self):
if self.is_empty():
return None
item = self.queue[self.front]
self.front = (self.front + 1) % self.size
return item
q = Queue(100)
while True:
c = input()
if c.isdigit():
q.enqueue(c)
elif c.islower():
q.dequeue()
else:
break
```
阅读全文