数据结构问题,用C++语言做的,题目如下:(在线等)

4.已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为... 4.已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为这三个表的结点空间。 展开
 我来答
314659476
2011-09-28 · TA获得超过1836个赞
知道大有可为答主
回答量:2162
采纳率:66%
帮助的人:570万
展开全部
struct po{char data;po * nextp;};
bool IsWord(char c);
bool IsNumber(char c);
void sd(po* pointer,po* word, po* number,po* other){ //p是原链表指针,其他是新链表指针
po * p = pointer;//拷贝原链表指针
po * wordlast = word;//用来记录链表最后一项
po * numberlast = number;
po * otherlast = other;
while(p!=NULL){
if(IsWord( p->data )){wordlast->nextp = p;}
else if(IsNumber( p ->data )){numberlast->nextp = p;}
else{otherlast->nextp = p;}
p = p->nextp;
}
}
不懂问我
更多追问追答
追问
main函数呢?我主要是不知道怎么写main函数啊,最好能够通过vc++6.0编译,麻烦你写出来,谢谢啊
追答
void printLink(po * p);//这个我没写,就是个打印链表 你会吧?
int main(){
char c = '1';
po Head;
po * Last = &Head;
while(TRUE){//循环输入,知道输入enter退出
coutnextp = structp;
Last = structp;
}
else{//如果输入完成就开始分析
cout<<"您输入的链表是:";
printLink(&Head);
po * word,number,other;
sd(&Head,word,number,other);
cout<<endl<<"分析后:";
cout<<endl<<"字母符号链表是:";
printLink(word);
cout<<endl<<"数字符号链表是:";
printLink(number);
cout<<endl<<"其他符号链表是:";
printLink(other);
return 0;
}
}
你大概看看。
regret4hxp2
2011-09-27 · TA获得超过682个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:249万
展开全部
我明白你的题目了,
不开新的空间,只利用原链表的空间,分割成三个链表出来,这三个链表分别保存三种字符。

那可难了。。 至少半个小时内我想不出来。
追问
就是你理解的那样子,那今晚应该能够做出来吧,做出来回给你加分的,发到我的邮箱里吧:klcf0220@163.com,非常感谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式