调试结果和输出结果不一样

今天写一个递归函数的时候,试着没有传引用进去,but 最后输出的结果竟然没有错,最关键的是 调试结果和输出的结果不一样 一度怀疑,是不是自己的指针用错了,看了好久,然后换了不同的编译器测试。。 果然 该死的Codeblocks ,害我溜了好大一个湾 。。。。额 好吧,其实也还好,我还是很喜欢codeblocks的 嘻嘻嘻嘻嘻嘻


```cpp
#include<iostream>
	using namespace std;
	  typedef class student
	       {
	       public :
	           int scores;
	           student *next;
	       }*Link,link;
	
	    void input_Link(Link &L,int e);
	    void printlist(Link &L);
	    void init_Link(Link &L);
	    void delete_Link(Link &L,int x);
	    void delete_putong(Link L,int e);
	
	   int main()
	       {
	           Link L;
	           init_Link(L);
	           int n,i,e;
	           cout<<"输入几个节点"<<endl;
	           cin>>n;
	           for(i=1;i<=n;i++)
	           {
	               cout<<"请输入数据"<<endl;
	               cin>>e;
	               input_Link(L,e);
	           }
	           //printlist(L);
	           cout<<"你想删除的值?"<<endl;
	           cin>>n;
	           //delete_putong(L,n);
	           //printlist(L);
	           delete_Link(L,n);
	           printlist(L);
	           return 0;
	
	
	       }
	
	   void init_Link(Link &L)
	       {
	           L=new link;
	           L=NULL;
	       }
	   void input_Link(Link &L,int e)
	       {
	           Link s=new link;
	           Link tail;
	           if(L==NULL)
	           {
	               s->scores=e;
	               s->next=NULL;
	               L=s;
	
	           }
	           else
	           {
	               Link p=L;
	               while(p->next!=NULL)
	               {
	                   p=p->next;
	               }
	               s->scores=e;
	               s->next=NULL;
	               p->next=s;
	           }
	
	       }
	
	   void printlist(Link &L)
	       {
	           if(L==NULL)
	           {
	               return ;
	           }
	
	           else
	           {
	               Link p=L;
	               while(p!=NULL)
	               {
	                   cout<<p->scores<<" ";
	                   p=p->next;
	
	               }
	           }
	       }
	
	   void delete_Link(Link &L,int x)  ///递归删除不带头节点链表的第一个 X元素
	       {
	           Link p;
	           if(L==NULL)
	           {
	               return ;
	           }
	           if(L->scores==x)
	           {
	               p=L;
	               L=p->next;
	               delete p;
	               return ;
	           }
	
	           else
	           {
	               delete_Link(L->next,x);
	           }
	       }
	
	   void delete_putong(Link L,int e)
	       {
	           if(L==NULL)
	           {
	               return ;
	           }
	
	           else if(L->next==NULL)
	           {
	               if(L->scores==e)
	               {
	                  delete L;
	               }
	           }
	           else
	           {
	               Link p=L;
	               if(L->scores==e)
	               {
	                   Link q=L->next;
	                   delete L;
	                   L=q;
	                   return ;
	               }
	               while(p->next->scores!=e)
	               {
	                   p=p->next;
	               }
	               if(p->next->scores)
	               {
	
	                   Link q=p->next;
	                   p->next=q->next;
	                   delete q;
	
	               }
	           }
	       }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值