栈、队列、串的基础综合应用

张开发
2026/4/11 20:55:05 15 分钟阅读

分享文章

栈、队列、串的基础综合应用
1. 栈 串反转字符串#include stdio.h#include string.h#define MAX 100char stack[MAX];int top -1;void push(char c) { stack[top] c; }char pop() { return stack[top--]; }int main() {char str[MAX];int i, len;scanf(%s, str);len strlen(str);for(i0; ilen; i) push(str[i]);for(i0; ilen; i) printf(%c, pop());return 0;}2. 队列 串字符串复制#include stdio.h#include string.h#define MAX 100char queue[MAX];int front0, rear0;void enqueue(char c) { queue[rear] c; }char dequeue() { return queue[front]; }int main() {char str1[MAX], str2[MAX];int i, len;scanf(%s, str1);len strlen(str1);for(i0; ilen; i) enqueue(str1[i]);for(i0; ilen; i) str2[i] dequeue();str2[len] \0;printf(%s, str2);return 0;}3. 栈 队列逆序队列#include stdio.h#define MAX 100int queue[MAX];int qf0, qr0;void enq(int x) { queue[qr] x; }int deq() { return queue[qf]; }int stack[MAX];int top-1;void push(int x) { stack[top] x; }int pop() { return stack[top--]; }int main() {enq(1); enq(2); enq(3); enq(4);while(qf qr) push(deq());while(top ! -1) enq(pop());while(qf qr) printf(%d , deq());return 0;}4. 栈 队列 串判断回文#include stdio.h#include string.h#define MAX 100char stack[MAX];int top-1;void push(char c) { stack[top] c; }char pop() { return stack[top--]; }char queue[MAX];int qf0, qr0;void enq(char c) { queue[qr] c; }char deq() { return queue[qf]; }int main() {char str[MAX];int i, len, ok1;scanf(%s, str);len strlen(str);for(i0; ilen; i) {push(str[i]);enq(str[i]);}while(top ! -1) {if(pop() ! deq()) ok0;}printf(ok ? yes : no);return 0;}5. 栈 队列 串 字符串的连续去重#include stdio.h#include string.h#define MAX 100char stack[MAX];int top -1;void push(char c) { stack[top] c; }char pop() { return stack[top--]; }char getTop() { return stack[top]; }char queue[MAX];int front 0, rear 0;void enqueue(char c) { queue[rear] c; }char dequeue() { return queue[front]; }int main() {char str[MAX], res[MAX];int i, len;scanf(%s, str);len strlen(str);for(i 0; i len; i) {if(top -1 || getTop() ! str[i]) {push(str[i]);enqueue(str[i]);}}for(i 0; front rear; i) {res[i] dequeue();}res[i] \0;printf(%s, res);return 0;}

更多文章