定义链式队列数据结构及其初始化、进队、出队操作等函数,输入一串字符串,在出队时对字母字符进行分类

没人懂吗... 没人懂吗 展开
 我来答
毋海亦0q
推荐于2018-04-24 · 超过33用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:58.2万
展开全部

#include<iostream>

#include<string>

using namespace std;


struct ChainNode

{

char value;

ChainNode* next;

ChainNode(char v){

value = v;

next = NULL;

}

};


class ChainQueue

{

public:

ChainQueue(){

head = NULL;

size = 0;

}

void push(char value){

if (head == NULL){

size++;

head = new ChainNode(value);

return;

}

ChainNode* ptr = head;

size++;

while (ptr != NULL && ptr->next != NULL)ptr = ptr->next;

ptr->next = new ChainNode(value);

}

char front()const{

return head->value;

}

void pop(){

if(size == 0)return;

ChainNode* temp = head->next;

delete head;

head = temp;

size--;

}

int getsize(){

return size;

}

~ChainQueue(){

ChainNode* cur = head;

while (cur != NULL)

{

ChainNode* temp = head->next;

delete cur;

cur = temp;

}

}

private:

ChainNode* head;

int size;

};


int main(){

string str;

string number = "";

string letter = "";

ChainQueue queue;

cout << "输入一串包括字母和数字的字符串:" << endl;

cin >> str;

cout << "输入的混合字符串为:" << str << endl;

for (int i = 0; i < str.length(); i++)

{

queue.push(str[i]);

}

for (int i = 0; queue.getsize() != 0; i++)

{

if(queue.front() >= '0' && queue.front() <= '9')

number += queue.front();

else

letter += queue.front();

queue.pop();

}

cout << "数字字符串为:" << number << endl;

cout << "字母字符串为:" << letter << endl;

}

七鑫易维信息技术
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量500余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分... 点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式