输入任意个数字存入单链表中

来源:互联网 发布:黎明杀机同步数据 编辑:程序博客网 时间:2024/06/06 14:28

#include <iostream.h>
#include <stdio.h>
typedef struct LNode  //定义单链表节点
{
 int data;
 struct LNode * next;
}LNode,*Linklist;

/*-----------------------------------------
函数类型:void
函数作用:将元素newdata从单链表尾插入至链表L
------------------------------------------*/
void RearInsert(Linklist &L,int newdata);

void main()
{
 cout<<"请输入任意个数字,中间用空格隔开,连续两空格默认输入0,按回车结束:"<<endl;
 char c;
 int i=0,j=0,sum=0;
 Linklist L=(Linklist)new(LNode);
 L->next=NULL;
 while((c=getchar())!='\n')
 {
  i++;
  if(c!=' ')
  { 
   sum=(c-'0')+sum*10; //字符数字转整型数字
  }
  else
  {
   RearInsert(L,sum); //将输入的数字尾插入链表L中
   j++;
   sum=0;
  }
 }
 RearInsert(L,sum);
 if(i==0)
  cout<<"未输入任何数字"<<endl;
 else
 {
  cout<<"共输入了"<<j+1<<"个数字,并将他们插入了单链表"<<endl;
  for(Linklist p=L->next;p->next!=NULL;p=p->next)  //链表循环输出
  {
   cout<<p->data<<" ";
  }
  cout<<p->data<<endl;
 }
}

void RearInsert(Linklist &L,int newdata)
{
 Linklist p=L;
 while(p->next!=NULL)  //寻找尾节点
 {
  p=p->next;
 }
 Linklist k=(Linklist)new(LNode);  //生成新节点
 p->next=k;  //尾插
 k->next=NULL;
 k->data=newdata;
}

原创粉丝点击