找回密码
 注册会员
查看: 614|回复: 0

链表的一个逻辑问题,求帮住..

[复制链接]
发表于 2010-4-23 09:40:00 | 显示全部楼层 |阅读模式
<p>链表的一个逻辑问题,求帮住..</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:0 -</p>
<p>解决时间:2010-4-23 09:35</p>
<p>#include<iostream></p>
<p>using namespace std;</p>
<p>struct nood</p>
<p>{</p>
<p>char data;</p>
<p>struct nood *next;</p>
<p>};</p>
<p>void main()</p>
<p>{</p>
<p>void printf(struct nood *l);</p>
<p>struct nood *l1,*p,*q,*w;</p>
<p>char ch1;</p>
<p>l1=new struct nood;</p>
<p>l1->next=0;q=l1;</p>
<p>cout<<"请输入一个字符串,并以*号结束"<<endl;</p>
<p>while(ch1!=\'*\')</p>
<p>{</p>
<p>cin>>ch1;</p>
<p>p=new struct nood;</p>
<p>p->next=0;</p>
<p>p->data=ch1;</p>
<p>q->next=p;</p>
<p>q=p;</p>
<p>}w=l1;</p>
<p>w=w->next;</p>
<p>while(w!=0)</p>
<p>{</p>
<p>cout<<w->data<<" ";</p>
<p>w=w->next;</p>
<p>}</p>
<p>cout<<endl;</p>
<p>printf(l1);</p>
<p>}</p>
<p>void insert(struct nood *l,int n,char ch3)</p>
<p>{</p>
<p>struct nood *get(struct nood *l,int n1);</p>
<p>struct nood *p,*s;</p>
<p>p=get(l,n-1);</p>
<p>if(p!=0)</p>
<p>{</p>
<p>s=new struct nood;</p>
<p>s->data=ch3;</p>
<p>s->next=p->next;</p>
<p>p->next=s;</p>
<p>}</p>
<p>}</p>
<p>struct nood *get(struct nood *l,int n1)</p>
<p>{</p>
<p>struct nood *p;</p>
<p>p=l;</p>
<p>int i=0;</p>
<p>while(i<n1 && p->next!=0)/*error,p1->next????*/</p>
<p>{</p>
<p>p=p->next;</p>
<p>i++;</p>
<p>}</p>
<p>return p;</p>
<p>}</p>
<p>void printf(struct nood *l)</p>
<p>{</p>
<p>int n1;char ch1,ch2,j,n;</p>
<p>struct nood *p;</p>
<p>p=l;</p>
<p>p=p->next;</p>
<p>while(p!=0)</p>
<p>{</p>
<p>cout<<p->data<<" ";</p>
<p>p=p->next;</p>
<p>}</p>
<p>cout<<"请选择你要做的"<<endl;</p>
<p>cout<<"1.查找"<<endl;</p>
<p>cout<<"2.插入"<<endl;</p>
<p>cout<<"3.删除"<<endl;</p>
<p>cin>>n1;</p>
<p>if(n1==1)</p>
<p>{</p>
<p>cout<<"请输入要查找的字符"<<endl;</p>
<p>cin>>ch1;</p>
<p>find(l,ch1);</p>
<p>printf(l);</p>
<p>}</p>
<p>else</p>
<p>if(n1==2)</p>
<p>{</p>
<p>cout<<"请输入要插入的字符"<<endl;</p>
<p>cin>>ch2;</p>
<p>cout<<"请输入要插入的位置"<<endl;</p>
<p>cin>>j;</p>
<p>insert(l,j,ch2);</p>
<p>printf(l);</p>
<p>}</p>
<p>else</p>
<p>if(n1==3)</p>
<p>{ cout<<"请输入要删除的位置"<<endl;</p>
<p>cin>>n;</p>
<p>del(l,n);</p>
<p>printf(l);</p>
<p>}</p>
<p>else</p>
<p>cout<<"ERROR"<<endl;</p>
<p>}</p>
<p>问题补充:</p>
<p>插入中怎么老是插入字符串最后去了,谁给我找找哪错了..代码没给全,只有插入那有问题.</p>
<p>提问者: wujinhai8888 - 二级</p>
<p>最佳答案</p>
<p>#include<iostream></p>
<p>using namespace std;</p>
<p>struct nood</p>
<p>{</p>
<p>char data;</p>
<p>struct nood *next;</p>
<p>};</p>
<p>void main()</p>
<p>{</p>
<p>void printf(struct nood *l);</p>
<p>struct nood *l1,*p,*q,*w;</p>
<p>char ch1;</p>
<p>l1=new struct nood;</p>
<p>l1->next=NULL;q=l1;</p>
<p>cout<<"请输入一个字符串,并以*号结束"<<endl;</p>
<p>while((ch1=getchar())!=\'*\')</p>
<p>{</p>
<p>//cin>>ch1;</p>
<p>p=new struct nood;</p>
<p>p->next=NULL;</p>
<p>p->data=ch1;</p>
<p>q->next=p;</p>
<p>q=p;</p>
<p>}w=l1;</p>
<p>w=w->next;</p>
<p>while(w)</p>
<p>{</p>
<p>cout<<w->data<<" ";</p>
<p>w=w->next;</p>
<p>}</p>
<p>cout<<endl;</p>
<p>printf(l1);</p>
<p>}</p>
<p>struct nood* insert(struct nood *l,int n,char ch3)</p>
<p>{</p>
<p>struct nood *get(struct nood *l,int n1);</p>
<p>struct nood *p,*s;</p>
<p>s=new struct nood;</p>
<p>s->data=ch3;</p>
<p>if (n==1)</p>
<p>{</p>
<p>s->next=l->next;</p>
<p>l->next=s;</p>
<p>return l;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>p=get(l,n-1);</p>
<p>if (p==NULL)</p>
<p>{</p>
<p>return NULL;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>s->next=p->next;</p>
<p>p->next=s;</p>
<p>}</p>
<p>}</p>
<p>return l;</p>
<p>}</p>
<p>struct nood *get(struct nood *l,int n1)</p>
<p>{</p>
<p>struct nood *p;</p>
<p>p=l->next;</p>
<p>int i=1;</p>
<p>while(i<n1 && p!=NULL)/*error,p1->next????*/</p>
<p>{</p>
<p>p=p->next;</p>
<p>i++;</p>
<p>}</p>
<p>if (p)</p>
<p>{</p>
<p>return p;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>cout<<"要求插入的位置不正确!"<<endl;</p>
<p>return NULL;</p>
<p>}</p>
<p>}</p>
<p>void printf(struct nood *l)</p>
<p>{</p>
<p>int j,n,n1;//此处定义出了问题;</p>
<p>char ch1,ch2;</p>
<p>struct nood *p;</p>
<p>p=l;</p>
<p>p=p->next;</p>
<p>while(p!=0)</p>
<p>{</p>
<p>cout<<p->data<<" ";</p>
<p>p=p->next;</p>
<p>}</p>
<p>cout<<"请选择你要做的"<<endl;</p>
<p>cout<<"1.查找"<<endl;</p>
<p>cout<<"2.插入"<<endl;</p>
<p>cout<<"3.删除"<<endl;</p>
<p>cin>>n1;</p>
<p>if(n1==1)</p>
<p>{</p>
<p>cout<<"请输入要查找的字符"<<endl;</p>
<p>cin>>ch1;</p>
<p>// find(l,ch1);</p>
<p>printf(l);</p>
<p>}</p>
<p>else</p>
<p>if(n1==2)</p>
<p>{</p>
<p>cout<<"请输入要插入的字符"<<endl;</p>
<p>cin>>ch2;</p>
<p>cout<<"请输入要插入的位置"<<endl;</p>
<p>cin>>j;</p>
<p>insert(l,j,ch2);</p>
<p>printf(l);</p>
<p>}</p>
<p>else</p>
<p>if(n1==3)</p>
<p>{ cout<<"请输入要删除的位置"<<endl;</p>
<p>cin>>n;</p>
<p>// del(l,n);</p>
<p>printf(l);</p>
<p>}</p>
<p>else</p>
<p>cout<<"ERROR"<<endl;</p>
<p>}</p>
<p>/*问题补充:插入中怎么老是插入字符串最后去了,谁给我找找哪错了..代码没给全,只有插入那有问题.</p>
<p>*/</p>
<p>1</p>
<p>回答者:</p>
<p>lizard1861 - 六级   2010-4-22 13:23</p>
<p>我来评论>></p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-5-21 04:33

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表