如何用c++创建一个单向链表存储有字符串的纪录数据并按输入的顺序输出
1个回答
展开全部
//一个简单但完整的单向链表
#include <iostream>
#include <string.h>
using namespace std;
struct node //定义结构体
{
char* ch; //存放数据字符串
struct node* next; //指向下一个结点
};
struct node* Create() //新建结点并初始化
{
struct node* n=new struct node;
n->ch=NULL;
n->next=NULL;
return n;
}
int main()
{
struct node *head=NULL,*p=NULL;
char s[100]="\0";
while(1)
{
memset(s,'\0',100);
cin>>s;
if(strcmp(s,"quit")==0) break; //如果输入的是quit则表示用户结束输入
struct node *new_node;
new_node=Create(); //新建结点
new_node->ch=new char[strlen(s)]; //为新建立的结点分配数据字符串存储空间
strcpy(new_node->ch,s); //把用户输入的字符串存储入新结点中
if(head==NULL) //如果头结点为空,则把当前新结点当成头结点
{
head=new_node;
p=head; //当前指向为头结点
}
else //如果头结点不为空
{
p->next=new_node; //把上一个结点的next指向新建结点
p=p->next; //当前指向为新结点
}
}
p=head; //重新指向头结点,以便输出
while(1)
{
cout<<p->ch<<endl; //输出数据字符串
if(p->next==NULL) break; //如果当前结点没有指向下一个结点,则退出
p=p->next; //当前指向下一个结点
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询