Skip to main content

Find length of circular linked list in php

Php program for Find length of circular linked list . Here more information.

<?php
// Php program for
// Count number of nodes in circular linked list 

// Define class of linked list Node
class LinkNode
{
	public $data;
	public $next;
	public	function __construct($data, $first)
	{
		$this->data = $data;
		$this->next = $first;
	}
}
class CircularLinkedList
{
	public $head;
	// Class constructor
	public	function __construct()
	{
		$this->head = NULL;
	}
	// Insert node at end of circular linked list
	public	function insert($value)
	{
		// Create a new node
		$node = new LinkNode($value, $this->head);
		if ($this->head == NULL)
		{
			// First node of linked list
			$this->head = $node;
			$node->next = $this->head;
		}
		else
		{
			$temp = $this->head;
			// Find the last node
			while ($temp->next != $this->head)
			{
				// Visit to next node
				$temp = $temp->next;
			}
			// Add new node at the last 
			$temp->next = $node;
		}
	}
	public	function countNode()
	{
		if ($this->head == NULL)
		{
			return 0;
		}
		// Start with second node
		$temp = $this->head->next;
		// This is used to count linked node
		$count = 1;
		// iterate circular linked list
		while ($temp != $this->head)
		{
			$count += 1;
			// Visit to next node
			$temp = $temp->next;
		}
		return $count;
	}
	public static
	function main($args)
	{
		$cll = new CircularLinkedList();
		// Add nodes
		$cll->insert(1);
		$cll->insert(3);
		$cll->insert(5);
		$cll->insert(7);
		$cll->insert(9);
		$cll->insert(11);
		// Display result
		printf("%d\n", $cll->countNode());
	}
}

CircularLinkedList::main(array());

Output

6




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment