  In this paper we present the first deterministic polynomial time algorithm
for determining the existence of a Hamiltonian cycle and finding a Hamiltonian
cycle in general graphs. Our algorithm can also solve the Hamiltonian path
problem in the traceable graphs. The space complexity of our algorithm is
O(n^4). The time complexity are theoretically O(n^5*d^2) on average and
O(n^6*d^2) in the worst case respectively, where d is the maximum degree of
vertex. With parallel computing, the space complexity can be improved to O(n^3)
and the time complexity to O(n^3*d^2) on average and O(n^4*d^2) in the worst
case. We construct the corresponding path hologram transformed from the
original graph and compute the path set, which is a collection of segment sets
consisting of all the vertices located on the same segment level among all the
longest basic paths, of every vertex with greedy strategy. The path hologram is
a multi-segment graph with the vertex <u, k> where u is a vertex and k is the
segment level of u in the path hologram. To ensure that each valid path
fragments can be visited and invalid path fragments cannot be visited, the key
strategy of our method is the "consecutive" deleting-replenishing operations
recursively on the left/right action field of a vertex, respectively. In fact,
our algorithm can be directly applied to the original graph. Besides, our
algorithm can deal with the finite general graphs including undirected,
directed, and mixed. As a result, the well-known problem HCP in NPC can be now
solved practically in deterministic polynomial time for general graphs in the
worst case.
