************************************************************************/
/* 单链表创建 测长 打印 */
/************************************************************************/
#include <iostream>
#include <string>
using namespace std;
//创建一个链表的节点结构,分为数据部分和指针部分
struct Node{
int data;//节点中的数据部分
struct Node *Next;//节点中的指针部分
};
Node *plinklist;//初始地址
//输入数据,插入到链表中,构造单链表
Node* found_list(int i)
{
int node_data;
Node *plist;
scanf("%d",&node_data);
plinklist=(Node*)malloc(sizeof(Node));
plinklist->data=node_data;
plist=plinklist;
// cout<<plinklist->data<<endl;
while (i>1)
{
scanf("%d",&node_data);
Node *s=(Node*)malloc(sizeof(Node));
s->data=node_data;
plinklist->Next=s;
s->Next=NULL;
plinklist=s;
//cout<<plinklist->data<<endl;
i--;
}
//cout<<plist->data<<endl;
return plist;
}
//链表建立成功,循环获得链表长度
int list_length(Node *plist)
{
int length=0;
while (plist!=NULL)
{
length++;
plist=plist->Next;
}
cout<<"链表长度:"<<length<<endl;
return length;
}
//循环打印链表
void print(Node *plist)
{
do
{
cout<<"输出的链表:"<<plist->data<<endl;
plist=plist->Next;
if (plist->Next==NULL)
{
cout<<"输出的链表:"<<plist->data<<endl;
}
} while (plist->Next!=NULL);
}
void main(string args[])
{
int i=3;
Node *plist=found_list(i);
list_length(plist);
print(plist);
}