NBUOJ 1800 找位置 鍊錶

2021-10-02 16:21:53 字數 945 閱讀 7154

做操的時間到了,小明在教室還在思考剛剛老師講的一道題目,當他想通這個題時,同學們都已經在操場上排好隊了,他趕快跑到操場上找到自己的班級隊伍,希望盡快找到自己的位置,準備做操,小明記得自己是排在第x學號同學的後面。你能不能來幫小明找到自己的位置呢?

第一行輸入: n x y(小明不在時隊伍的長度、第x同學的學號、小明的學號)

第二行輸入:n個同學的學號(6位,第一位可能為0,最後一位可能為x,每個學號後有空格)

n+1個學號的順序(小明加入隊伍後)每個學號後有空格

4 134123 123483

134812 134123 023133 04583x

134812 134123 123483 023133 04583x

鍊錶的基本操作(建立,插入,刪除,輸出)

#include

#include

#include

using

namespace std;

typedef

struct nodenode;

void

create_linkedlist

(node *h,

int n)

//建立鍊錶,其中n為同學個數

r =new node;

p->next = r;

p = r;}}

void

print_linkedlist

(node *h,

int n)

//輸出鍊錶,其中n為小明插入後的同學個數

cout<}void

insert_linkedlist

(node *h,string s,string n)

//在某同學後插入小明,s為某同學的學號,n為小明學號

p=p-

>next;}}

intmain()

找鍊錶環入口

對於乙個給定的鍊錶,返回環的入口節點,如果沒有環,返回null 拓展 你能給出不利用額外空間的解法麼?核心思路 快慢指標 定義乙個快指標每次走兩步 定義乙個慢指標每次走一步 快慢指標相遇則一定在環內,且方向相反 相遇後慢指標從頭開始走,快指標繼續走每次只走一步,最後快慢指標相遇一定是入口 具體計算參...

快慢指標找煉表中點

今天在刷leetcode的題目 palindrome linked list的時候,想出來的解決演算法的空間複雜度都在o n 不符合題目的限制,在看了幾個部落格以後發現他們的解決方案都用到了乙個方法查詢鍊錶的中點 快慢指標找鍊錶中點法 演算法的思路是 定義乙個快指標fast 乙個慢指標slow 快指...

鍊錶找環 python實現

具體思路我就不在這照貓畫虎啦,具體的演算法思路可以看一下這篇文章,文章思路很清晰,文筆很詼諧幽默,我就直接上 吧,python語言實現 coding utf 8 節點類 class node object def init self,value self.val value self.next no...