1. 程式人生 > >迴圈連結串列的特性以及判斷單鏈表是否有環(九)

迴圈連結串列的特性以及判斷單鏈表是否有環(九)

typedef struct CLinkList
{
	int data;
	struct CLinkList* next;
}node;
typedef struct CLinkList* LinkList;
int compareStep(LinkList L)
{
	LinkList cur1 = L;//定義結點cur1
	int pos1 = 0;//cur1的步數

	while(cur1)
	{
		LinkList cur2 = L;//定義結點cur2
	    int pos2 = 0;//cur2的步數
		while(cur2)
		{
			if(cur1==cur2)
			{
				if(pos1==pos2)break;
				else 
				{
					printf("環的位置在第%d個結點處。\n",pos2);
					return 1;
				}
			}
			cur2 = cur2 ->next;
			pos2++;
		}
		    cur1 = cur1->next;
			pos1++;
	}
	return 0;
}
方法二的程式碼如下:

相關推薦

迴圈連結串列特性以及判斷單鏈是否()

typedef struct CLinkList { int data; struct CLinkList* next; }node; typedef struct CLinkList* LinkList; int compareStep(LinkList L) { LinkList cur1 = L;

判斷單鏈是否,如果找出的入口位置=>求兩個相交連結串列的交點

首先如何判斷一個連結串列是否有環: 設定兩個指標(fast, slow),初始值都指向頭,slow每次前進一步,fast每次前進二步,如果連結串列存在環,則fast必定先進入環,而slow後進入環,兩個指標必定相遇。(當然,fast先行頭到尾部為NULL,則為無環連結串列

11.判斷單鏈是否

兩個指針 next 測試 重載 else reader sta clas 復雜度 判斷單鏈表是否有環: 這裏也是用到兩個指針,如果一個鏈表有環,那麽用一個指針去遍歷,是永遠走不到頭的。 因此,我們用兩個指針去遍歷:first指針每次走一步,second指針每次走兩步

判斷單鏈是否

plc .html weibo app sin pla mpc html cnblogs 辜鈉魯u0ri0忌蠱負http://huiyi.docin.com/txqq_8fb449e9c9儼夾銥43gi1鑰倚蚜http://www.docin.com/app/user/us

Java演算法:判斷單鏈是否

README 單鏈表是否有環,這是一個挺有意思的問題,這裡我並沒有提出新的解法,而是解釋了現有的解法,幫助新人和自己理解。 題目描述 判斷一個單鏈表是否有環,如果有,返回第一個環內的節點的引用,如果沒有環,返回nuill。 程式設

Java判斷單鏈是否的兩種實現方法

http://blog.jobbole.com/106227/ 方法一:首先從頭節點開始,依次遍歷單鏈表的每一個節點。每遍歷到一個新節點,就從頭節點重新遍歷新節點之前的所有節點,用新節點ID和此節點之前所有節點ID依次作比較。如果發現新節點之前的所有節點當中存

題目:程式碼實現判斷單鏈是否

#include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20 /* 儲存空間初始分配量 */ typedef int Status;/* Status是函式的型別,其值

判斷單鏈是否,並找出的入口【python】

問題: 1、如何判斷一個連結串列是不是這類連結串列? 2、如果連結串列為存在環,如果找到環的入口點? 一、判斷連結串列是否存在環,辦法為: 設定兩個指標(fast, slow),初始值都指向頭,slow每次前進一步,fast每次前進二步,如果連結串列存在環,則fast必定先進入環,而slow後進入環

如何判斷單鏈是否的入口、的長度和總長

問題描述 1.如何判斷單鏈表是否有環? 2.如果有環,求出環的入口 3.求環長 4.求總長 探討 要想判斷有環,我們可以聯絡實際生活中的例子,很容易就想到操場上跑圈,因為是環形,所以快的肯定會追上慢的,所以我們可以應用到連結串列上,用一個快

判斷單鏈是否存在判斷兩個連結串列是否相交問題詳解

有一個單鏈表,其中可能有一個環,也就是某個節點的next指向的是連結串列中在它之前的節點,這樣在連結串列的尾部形成一環。問題:1、如何判斷一個連結串列是不是這類連結串列?2、如果連結串列為存在環,如何找到環的入口點?解答:一、判斷連結串列是否存在環,辦法為:設定兩個指標(fast, slow),初始值都指向頭

如何判斷一個單鏈是否以及入口

這是一個在我們學習資料結構的時候經常會遇到的問題,今天給大家帶來這個問題的幾種解法。 方法一 最容易想到的辦法就是遍歷單鏈表,如果單鏈表有環的話那麼會進入死迴圈,但是我們不知道單鏈表的長度,所以如果單鏈表長度很長,我們一直向下遍歷,也無法分辨出是單鏈表還

連結串列】兩個單鏈求差集

問題描述 已知集合A和B的元素分別用不含頭結點的單鏈表儲存,函式difference()用於求解集合A與B的差集,並將結果儲存在集合A的單鏈表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成計算後A={10,20

連結串列--如何反向輸出單鏈

方法一 思路: 先把連結串列反轉再遍歷輸出。 方法二 思路: 遍歷連結串列,每遍歷到一個結點,就把這個結點的值儲存到一個棧中,遍歷完連結串列後,再從棧頂彈出每一個結點的值。這種方法會佔用額

一個連結串列的構造過程-單鏈

對於有其它程式設計基礎的人來說,在初學python時會發現有兩個很明顯的不同的地方,一個是縮排,另外一個就是在定義一個變數時並不會提前宣告這個變數的型別。出現第二個不同的主要原因是在於python在儲存資料的時候與其他語言(如C語言)的不同所導致。那麼pytho

如何判斷一個單鏈是否

算法 查找 public class LinkedListRing{ static class LinkedNode<T>{ private T t ; private LinkedNode<T> next = null; public LinkedNode(T t)

判斷單鏈是否存在及尋找的入口點

再次 介紹 說明 != clas 頭部 開始 code 方法 一、判斷單鏈表是否存在環 這個問題有很多方法,最容易想到的就是記錄每個節點記錄的次數。這裏也介紹的是另一種簡單而常見的方法 快慢指針法: 定義兩個指針slow, fast。slow指針一次走1個結點,fast指針

判斷單鏈是否帶?若帶,求的長度?求的入口點?

判斷單鏈表是否帶環?若帶環,求環的長度?求環的入口點? 這道題有三問,是否帶環?環的長度?環的入口點? 1.單鏈表是否帶環? 思路分析:怎麼樣才算帶環呢?我們細想,如果一個單鏈錶帶環的話,那麼它怎麼走都走不出來的,而如果不帶環的話,那麼一定會走到NULL的。

JS-單鏈是否以及的入點問題

給定一個連結串列,判斷連結串列中是否有環。 進階: 你能否不使用額外空間解決此題? 方案1 雜湊表 雜湊表是最容易理解的一個方案 建立一個雜湊表,如果不存在就向雜湊表中新增資料,存在的話就直接返回true(存在的可能只有P點,同時P點也是環的入點(這個和下一道題

判斷單鏈是否帶?若帶,求的長度,求的入口點

判斷是否帶環,若帶環返回相遇點,否則返回空 pNode IsCircle(pList plist) { pNode pFast = plist; pNode pSlow = plist; while (pFast && pFast->next)

演算法之(二)判斷一個單鏈是否

思路:如果一個單鏈表中有環,用一個指標去遍歷,永遠不會結束,所以可以用兩個指標,一個指標一次走一步,另一個指標一次走兩步,如果存在環,則這兩個指標會在環內相遇,時間複雜度為O(n)。 拓展問題1:如果單鏈表有環,找出環的入口節點(環的連線點)。 這裡先證明一個