回 帖 发 新 帖 刷新版面

主题:怎样编一个比较完整的查找函数

大家好,我已经编了一个查找函数,下面就是,但是作业要求是如果找不到要查找的结点,就一直向下查找直到找到,然后将其指针返回;如果找不到就要输入“对不起 没有此结点”的字样  希望大家帮忙谢了  我不太会使用if以及他的嵌套
linklist *GET (linklist *head,char ah)
{

 
 linklist *p;
 p=head;
 if(p==NULL)
 {
     cout<<"there is not any progress"<<endl;
 }
 while(p!=NULL)
 if(p->data!=ah)
     p=p->next;
     
    else if(p->data==ah) 
    cout<<"the progress has been finded"<<endl;
   
  return p;    
  break;
     else if(p->next==NULL)
        cout<<"the letter doesn't exit"<<endl;
  
   
  
}
int main()
{linklist *head;
 cout<<"请输入您要查找的结点:"<<endl;
 char ch;
 ch=getchar();
 Get(head,ch);
}

回复列表 (共6个回复)

沙发



linklist *GET (linklist *head,char ah)
{

 
 linklist *p;
 p=head;
 if(p==NULL)
 {
     cout<<"there is not any progress"<<endl;
 }
 while(p!=NULL){
 if(p->data!=ah)
     p=p->next;

 /* 大括号 */    
  else if(p->data==ah){
   cout<<"the progress has been finded"<<endl;
   return p;    
   break;
  }
   else if(p->next==NULL)
        cout<<"the letter doesn't exit"<<endl;
  
   }
  
}
int main()
{
 linklist *head;
 cout<<"请输入您要查找的结点:"<<endl;
 char ch;
 ch=getchar();
 Get(head,ch);
 }

板凳

楼上的,你太帅了,我按着你告诉的改了之后,真的可以运行了,但是如果我输入的结点 不存在的话它就不显示 了,怎样才能让它显示呢,谢谢

3 楼

我想再请教大家一个问题;我想将链表中的所有结点依次输出,但是只能显示一个,下面是我的程序,希望大家多提 宝贵意见
 void Show(linklist *head)
{
 char ch;
  if(head==NULL)
  {
      cout<<"there isn't any progress!"<<endl;
      return;
  }
  
  while(head!=NULL)
  {
  cout<<"the progress include:"<<head->data<<endl;
  head=head->next;
  }
  
 }
谢谢大家啦 

4 楼

楼主是不是在c/c++版块也问了这个问题啊?
刚刚有看到一样的 
  你这个程序应该是没错误的, 输出一个结点可能是你的连表中只有一个结点
 还有 char ch; 这里根本就没有用到 所以可以不要

5 楼

"楼上的,你太帅了,我按着你告诉的改了之后,真的可以运行了,但是如果我输入的结点 不存在的话它就不显示 了,怎样才能让它显示呢,"

这个得再好好看程序吧,理清程序的运行过程就可以了,修改一下吧

遍历一下链表的所有节点,一一显示就行了~~

ps:也在学习~~ c plus plus 的不是很熟哦,~~  一起努力哦

6 楼

谢谢啦 ,我在c++上也贴了,可能是程序整体有问题吧,希望大家有空的话到c++里看看我的帖子吧,谢谢大家啦

我来回复

您尚未登录,请登录后再回复。点此登录或注册