Re: [問題] linkedlist 一個比較較不常見的問題
※ 引述《Dreamer77 (追夢)》之銘言:
: 其實我不懂 為什麼這樣的問題不能問 得要被版主刪掉?
: 是說這個版只能問語法嗎?
其實也不是這樣說,只是這問題可議性很大,一些髒髒的手法都有,
不是說一定要單純從 RunTime 那裡取得,
甚至可以在 pre-processor 那裡加點東西進去,
可能面試真的只有這樣的敘述,但似乎還是看 code 最清楚吧?
: 硬是要我先寫出code來的話 那就只能這樣寫 不過沒有比原文多初什麼info就是
: struct nodeTp{
: int value;
: struct nodeTp *next;
: };
: struct nodeTp *A, *B, *C;
: A->next = B;
: B->next = C;
: findPrvNode(B);
: struct nodeTp* findPrvNode(struct nodeTp *in)
: {
: // 該怎麼return previous node of in
: }
我不是要挑你有毛病的地方,但如果這真的是面試題目的話,
這題你也可以不用想了,實質上 A->next B->next C->next 都是非法存取。
: ※ 引述《Dreamer77 (追夢)》之銘言:
: 給定一個linkedlist
: 以及一個指標 這個指標指向這linkedlist 內部的某node(非head)
: 該怎麼找到這個node的前一個node呢?
: 非double linkedlist 是一個單向的
: 想不到有什麼方法...
這篇我覺得很可惜一點是,雖然是面試題目,
但原本推文裡之討論可引出更多知識與討論,
最後因不合題意要求 ( 其實我還沒完全抓到,最後的限制到底有哪些 ) 而作罷,
像 purpose 與 loveme00835 提的東西都是讓我很想知道的。
這裡我可以直接給一個「特例」 (可以丟雞蛋沒關係)
http://codepad.org/eZ35qFDp
struct link* prev_node(struct link* node)
{
return node - 1;
}
struct link *bprev ;
struct link arr[] = {
{&arr[1], 1},
{&arr[2], 2},
{NULL,3}
};
travel(arr);
bprev = prev_node(arr+1);
當然這是一組特例,但一些早期教科書上,或其他論壇裡,
是會拿 array-like link list 當 sample (當然不會用這麼爛的例子)
如果是 C language spec. 有用到 malloc 的話,
有很髒的手法可以達成,但重點就是不知道「前端」( new node 怎來的 )
是怎來的?
有興趣的話,可 google dbg_malloc,裡面的技巧可以拿來用,
最後的 single link list 是開放給 coder 看的,
實質上變成 "近似" double link list (要 polling 已 allocate 之 address)。
沒回答到問題的話只能說聲報歉,問題解讀能力沒很好。
--
「自從我學了 C# , 人都變聰明 , 考試都考一百分」
「自從我學了 VB , 皮膚都變好 , 人也變漂亮了 」
「自從我學了 Java , 明顯變壯 , 個子也變高了 」
「自從我學了 C++ , 內分泌失調 , 頭都禿了... 」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.79.203
※ 編輯: EdisonX 來自: 118.168.79.203 (04/22 02:21)
推
04/22 02:21, , 1F
04/22 02:21, 1F
→
04/22 09:13, , 2F
04/22 09:13, 2F
→
04/22 09:52, , 3F
04/22 09:52, 3F
→
04/22 09:53, , 4F
04/22 09:53, 4F
→
04/22 10:12, , 5F
04/22 10:12, 5F
→
04/22 10:19, , 6F
04/22 10:19, 6F
→
04/22 10:19, , 7F
04/22 10:19, 7F
→
04/22 10:22, , 8F
04/22 10:22, 8F
→
04/22 10:23, , 9F
04/22 10:23, 9F
→
04/22 10:25, , 10F
04/22 10:25, 10F
→
04/22 10:27, , 11F
04/22 10:27, 11F
→
04/22 10:28, , 12F
04/22 10:28, 12F
→
04/22 10:30, , 13F
04/22 10:30, 13F
→
04/22 10:40, , 14F
04/22 10:40, 14F
→
04/22 10:42, , 15F
04/22 10:42, 15F
→
04/22 10:43, , 16F
04/22 10:43, 16F
→
04/22 10:43, , 17F
04/22 10:43, 17F
推
04/22 13:39, , 18F
04/22 13:39, 18F
→
04/22 13:40, , 19F
04/22 13:40, 19F
→
04/22 18:07, , 20F
04/22 18:07, 20F
推
04/22 19:22, , 21F
04/22 19:22, 21F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章