数据结构问题,用C++语言做的,题目如下:(在线等)
4.已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为...
4.已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为这三个表的结点空间。
展开
2个回答
展开全部
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;
}
}
不懂问我
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;
}
}
你大概看看。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询