特殊的日子,再写一编来纪念,以后一天争取一编

本文介绍了一个简单的链表实现案例,包括节点的添加、显示及删除功能,并通过一个交互式的控制台应用程序进行演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <stdio.h>

using  namespace std;

struct myTest
{
 int a;
 int b;
 myTest *next;
};

myTest *headTest;

void AddNode(int a,int b)
{
 myTest *tt = new myTest;
 tt->a =a;
 tt->b = b;

 if (headTest == NULL)
 {
  headTest = tt;
  tt->next =NULL;
 }else
 {
  myTest *mm = headTest;
  
  while (mm->next != NULL)
  {
   mm = mm->next;
  }
  
  mm->next = tt;
  tt->next = NULL;
  
 }
 
}

void PrintfNodes(int a,int b)
{
 printf("a=%d b=%d/n",a,b);
}

void showNodes()
{
 if (headTest == NULL) return;

 myTest *p = headTest;

 
 PrintfNodes(p->a,p->b);


 while (p->next != NULL)
 {
  p = p->next;
  PrintfNodes(p->a,p->b);
 }
 return;
}

 

void DeleteNodes(int a)
{
 if (headTest == NULL) return;

 if (headTest->next == NULL && headTest->a == a)
 {
  delete headTest;
  return;
 }

 myTest *p = headTest;
 myTest *r = headTest;
 while (p!= NULL)
 {
  if (p->a == a)
  {
   if (p==headTest)
   {
    headTest = p->next;
    delete p;
    r= headTest;
    p= headTest->next;
   }else
   {
    myTest *tt = p->next;
    delete p;
    r->next= tt;
    p= tt->next;
   }
  }else
  {
   myTest *tt = p->next;
   r=p;
   p = tt;
  }
 }


 return;
}

void main()
{
 int a =1;

 cout<<"输入0 退出,1添加,2查看,3删除/n";
 while (a>0)
 {
  cout<<"请输入操作标记 flag =";
  cin>>a;
  switch(a)
  {
  case 0:
   exit(0);
   break;
  case 1:
   {
    int c,d;
    cout<<"请输入a=";
    cin>>c;
    cout<<"请输入b=";
    cin>>d;
    AddNode(c,d);
    break;
   }
  case 2:
   showNodes();
   break;
  case 3:
   {
    cout<<"请输入a =";
    int kz =0;
    cin>>kz;
    DeleteNodes(kz);
    break;
   }
  default:
   break;

  }
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值