// Create a chain table and print the length.
// Create a linked list of leading nodes. the header Pointer Points to the header node. the header node does not store data, and the next of the header node points to the first node.
# Include <iostream>
Using namespace STD;
Typedef struct _ Node
{
Int data;
Struct _ node * next;
} Node;
Node * Create ()
{
Node * head = NULL;
Node * P = NULL;
Node * s = NULL;
Head = (node *) malloc (sizeof (node ));
If (null = head)
{
Return NULL;
}
P = head;
Int num = 0;
Cout <"Enter the value of the node and enter 0 to end \ n ";
While (CIN> num)
{
If (0! = Num)
{
S = (node *) malloc (sizeof (node ));
If (S = NULL)
{
Free (head );
Return NULL;
}
S-> DATA = num;
P-> next = s;
P = s;
}
Else
{
Break;
}
}
P-> next = NULL;
Return head;
}
Size_t getlength (node * head)
{
If (null = head | null = head-> next)
{
Return 0;
}
Size_t length = 0;
Node * pbegin = head-> next;
While (pbegin! = NULL)
{
++ Length;
Pbegin = pbegin-> next;
}
Return length;
}
Void print (node * head)
{
If (null = head | null = head-> next)
{
Cout <"the node is null \ n ";
Return;
}
Node * pbegin = head-> next;
While (pbegin! = NULL)
{
Cout <pbegin-> data <"";
Pbegin = pbegin-> next;
}
Cout <Endl;
}
Int main ()
{
Node * head = create ();
Print (head );
Cout <Endl;
Cout <getlength (head) <Endl;
Cout <Endl;
Return 0;
}