• 全部
  • 问答

数据结构的题,指针高手看过来(给分20,我只有39分哪!)

coolseafy 2001-04-03 01:41:00
数据结构老师给我们出的题:
已知由一个线性链表表示的线性表中有三类字符:字母型,数字型,其他类。
编写算法将该线性表分割为三个循环链表,其中每个循环链表中只含一类字符。

我对C++不行,请高手给出C++描述,救救我吧!我得作业交不了了!!!!
----------------------
给分20,我只有39分哪!
...全文
108 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
duz 2001-05-11
最好使用标准c函数isalpha,isdigit,
第一,反正Windows下你得代码总是要包含LIBC
第二,标准c函数比你自己的函数要快许多
回复
tycjg 2001-05-10
http://datas.home.sohu.com有答案
回复
shelby 2001-05-02
我先前的回复哪里去了?
回复
xm77 2001-04-30
int ischar(char x) {
((x>='a' && x<='z')||(x>='A' && x<='Z')) ? return 1 : return 0;
}
int isnumber(char x) {
(x>='0' && x<='9') ? return 1 : return 0;
}
typedef struct tagNode {
char ch;
struct Node * next;
}Node,* PNode;

//假定pOrig是原链表的首节点
int split(PNode pOrig,PNode *ppChar,PNode *ppNumber,PNode *ppOthers){
PNode p=pOrig,q,pC,pN,pO;
*ppChar=*ppNumber=*ppOthers=pC=pN=pO=NULL;
while(p){
q=p->next;
if(ischar(p->ch)){
if(!pC){
pC=*ppChar=p;
}
else pC->next=p;
}
else if(isnumber(p->ch)){
if(!pN){
pN=*ppNumber=p;
}
else pN->next=p;
}
else {
if(!pO){
pO=*ppOther=p;
}
else pO->next=p;
}
p=q;
}
if(!pC) pC->next=NULL;
if(!pN) pN->next=NULL;
if(!pO) pO->next=NULL;
return 1;
}

//很简单相信你一眼就能看懂
回复
hyqryq 2001-04-29
很简单呀!
回复
dogdog 2001-04-29
c行不行?
回复
lj9852 2001-04-29
遍历链表,将其中两种类型的节点分离,分别接在两个新链表后,在原链表中删除这两类节点,搞定。

回复
lightyu 2001-04-29
一帮骗子,即使是人家老师留的作业,也应该适当的给些提示把,要是人家会,还问你们干吗!除了硬石!!
回复
jucee 2001-04-28
没人会帮你做作业的,自己动手吧
回复
rh 2001-04-28
我倒,,,,好高深的题……
看今天是哪个老大来做了~~~~
回复
Saintking 2001-04-28
我想你去问问你们的老师会更好些。不过,你可以用你最熟悉的语言表述。一定要c++吗?
回复
duz 2001-04-22
FAINT,SO EASY
回复
rockhard 2001-04-22


将原表浏览一篇同时创建三个新表根据原表内容修改新的表浏览完毕将三个新表头链到尾即可
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2001-04-03 01:41
社区公告
暂无公告