คำถามติดแท็ก binary-trees

ต้นไม้ที่แต่ละโหนดมีลูกไม่เกินสองลูก

2
พิสูจน์ต้นไม้ไบนารีได้มากที่สุด
ฉันพยายามพิสูจน์ว่าต้นไม้ไบนารีที่มีnnn nodes มีไม่เกิน⌈n2⌉⌈n2⌉\left\lceil \frac{n}{2} \right\rceilใบ ฉันจะทำสิ่งนี้ด้วยการเหนี่ยวนำได้อย่างไร สำหรับคนที่ได้รับการต่อไปนี้ในคำถามเดิมเกี่ยวกับกองจะได้รับการย้ายที่นี่

2
จำนวนพา ธ การค้นหาที่เป็นไปได้เมื่อค้นหาใน BST
ฉันมีคำถามต่อไปนี้ แต่ไม่มีคำตอบสำหรับเรื่องนี้ ฉันจะขอบคุณถ้าวิธีการของฉันถูกต้อง: Q. เมื่อค้นหาค่าคีย์ 60 ในแผนผังการค้นหาแบบไบนารีโหนดที่มีค่าคีย์ 10, 20, 40, 50, 70, 80, 90 จะถูกสำรวจไม่จำเป็นต้องเรียงตามลำดับที่กำหนด คำสั่งซื้อที่แตกต่างกันมีความเป็นไปได้เท่าใดที่ค่าคีย์เหล่านี้สามารถเกิดขึ้นได้บนเส้นทางการค้นหาจากโหนดรูทที่มีค่า 60 (A) 35 (B) 64 (C) 128 (D) 5040 จากคำถามฉันเข้าใจว่าโหนดทั้งหมดที่ให้ไว้จะต้องรวมอยู่ในการสำรวจเส้นทางและท้ายที่สุดเราต้องไปถึงที่สำคัญเช่น 60 ตัวอย่างเช่นการรวมกันอย่างใดอย่างหนึ่งจะเป็น: 10, 20, 40, 50, 90, 80, 70, 60 เนื่องจากเราต้องข้ามโหนดทั้งหมดที่ระบุข้างต้นเราต้องเริ่มต้นด้วย 10 หรือ 90 ถ้าเราเริ่มต้นด้วย 20 เราจะไม่ถึง 10 (ตั้งแต่ 60> 20 และเราจะทรีย่อยทรีขวาของ 20) ในทำนองเดียวกันเราไม่สามารถเริ่มต้นด้วย …

4
การสำรวจเส้นทางล่วงหน้าของต้นไม้สองต้นสามารถเหมือนกันได้แม้ว่าต้นไม้นั้นจะแตกต่างกันหรือไม่?
คำถามนี้ค่อนข้างอธิบายได้ว่าพวกเขาทำได้ แต่ไม่แสดงตัวอย่างใด ๆ ของการมีต้นไม้สองต้นที่แตกต่างกันซึ่งมีการสำรวจเส้นทางล่วงหน้าที่เหมือนกัน มีการกล่าวถึงด้วยว่าการสำรวจเส้นทางตามลำดับของต้นไม้สองต้นที่แตกต่างกันอาจเหมือนกันแม้ว่าจะมีโครงสร้างที่แตกต่างกัน มีตัวอย่างของสิ่งนี้หรือไม่?

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

2
หนึ่งจะสร้างลำดับไบนารีทั้งหมดได้อย่างมีประสิทธิภาพด้วยจำนวนที่เท่ากันของ 0 และ 1 อย่างไร
ลำดับไบนารีของความยาวเป็นเพียงลำดับเพื่อให้แต่ละเป็นทั้งหรือ1เพื่อสร้างลำดับไบนารีดังกล่าวทั้งหมดเราสามารถใช้โครงสร้างต้นไม้ไบนารีที่เห็นได้ชัดในวิธีต่อไปนี้: รากคือ "ว่าง" แต่ลูกซ้ายแต่ละคนสอดคล้องกับการเพิ่มถึงสตริงที่มีอยู่และแต่ละลูกที่เหมาะสมกับ . ทีนี้ลำดับของไบนารีแต่ละคู่เป็นเพียงเส้นทางที่มีความยาวเริ่มต้นที่รูทและจบที่ลีฟnnnx1,…,xnx1,…,xnx_1,\ldots,x_nxjxjx_j000111000111n+1n+1n+1 นี่คือคำถามของฉัน: เราสามารถทำได้ดีกว่าถ้าเราเพียง แต่ต้องการสร้างสตริงไบนารีทั้งหมดของความยาวที่มีได้อย่างแม่นยำศูนย์และคน?2n2n2nnnnnnn โดย "เราทำได้ดีกว่า" ฉันหมายความว่าเราควรมีความซับซ้อนต่ำกว่าอัลกอริธึมโง่ที่สร้างต้นไม้ทั้งหมดขึ้นด้านบนแล้วพยายามหาเส้นทางเหล่านั้นด้วยขอบซ้ายและขวา

1
พิสูจน์ว่าแผนภูมิการค้นหาแบบไบนารีที่สร้างแบบสุ่มมีความสูงลอการิทึม
คุณจะพิสูจน์ได้อย่างไรว่าความสูงที่คาดหวังของแผนภูมิการค้นหาแบบไบนารีที่สร้างแบบสุ่มด้วยnnnโหนดคือ ? มีหลักฐานใน CLRS รู้เบื้องต้นเกี่ยวกับอัลกอริทึม (บทที่ 12.4) แต่ฉันไม่เข้าใจO(logn)O(log⁡n)O(\log n)

2
ความสูงเฉลี่ยของต้นไม้ไบนารีคืออะไร?
มีคำจำกัดความเกี่ยวกับความสูงเฉลี่ยของต้นไม้ไบนารีหรือไม่? ฉันมีคำถามเกี่ยวกับการสอนเกี่ยวกับการค้นหาความสูงเฉลี่ยของต้นไม้ไบนารีโดยใช้สองวิธีต่อไปนี้: วิธีแก้ปัญหาตามธรรมชาติอาจจะใช้ความยาวเฉลี่ยของเส้นทางที่เป็นไปได้ทั้งหมดจากรากถึงใบไม้นั่นคือ )AVH1( T) = 1# ใบไม้ใน T⋅ ∑วี ใบ Tความลึก( v )avh1⁡(T)=1# leaves in T⋅∑v leaf of Tdepth⁡(v)\qquad \displaystyle \operatorname{avh}_1(T) = \frac{1}{\text{# leaves in } T} \cdot \sum_{v \text{ leaf of } T} \operatorname{depth}(v) อีกทางเลือกหนึ่งคือการกำหนดมันซ้ำ ๆ นั่นคือความสูงเฉลี่ยสำหรับโหนดคือค่าเฉลี่ยสูงกว่าความสูงเฉลี่ยของ subtrees บวกหนึ่งนั่นคือ AVH2( N( l , r ) ) = avh2( …

1
การปรับปรุงช่วง + แบบสอบถามช่วงที่มีต้นไม้ที่จัดทำดัชนีไบนารี
ฉันพยายามที่จะเข้าใจว่าต้นไม้ดัชนีแบบไบนารี (ต้นไม้ fenwick) สามารถแก้ไขได้เพื่อจัดการแบบสอบถามทั้งช่วงและการปรับปรุงช่วง ฉันพบแหล่งข้อมูลต่อไปนี้: http://kartikkukreja.wordpress.com/2013/12/2/range-updates-with-bit-fenwick-tree/ http://programmingcontests.quora.com/Tutorial-Range-Updates-in-Fenwick http : //apps.topcoder.com/forums/ โมดูล = Thread & threadid = 756271 & start = 0 & MC = 4 # 1579597 แต่แม้หลังจากอ่านทั้งหมดฉันก็ไม่สามารถเข้าใจได้ว่าจุดประสงค์ของต้นไม้ดัชนีไบนารีตัวที่สองคืออะไรหรือทำอะไร มีคนช่วยอธิบายให้ฉันฟังหน่อยได้ไหมว่าต้นไม้แบบดัชนีแบบไบนารีถูกแก้ไขเพื่อจัดการสิ่งเหล่านี้อย่างไร

3
คือความสูงต่ำสุดของไบนารีต้นไม้ทำไม ?
ในคลาส Java ของฉันเรากำลังเรียนรู้เกี่ยวกับความซับซ้อนของคอลเลกชันประเภทต่างๆ ในไม่ช้าเราจะคุยเรื่องต้นไม้ไบนารีซึ่งฉันอ่านมาแล้ว หนังสือระบุว่าความสูงขั้นต่ำของต้นไม้ไบนารีคือแต่ไม่มีคำอธิบายเพิ่มเติมlog2(n+1)−1log2⁡(n+1)−1\log_2(n+1) - 1 มีคนอธิบายได้ไหม

1
Splay tree ที่มีการหมุนเป็นจำนวนคี่
เมื่อแทรกรายการลงในแผนภูมิต้นไม้การหมุนจะดำเนินการเป็นคู่โดยยึดตามรูปแบบ zig-zag หรือ zig-zig เมื่อมีการหมุนเป็นจำนวนคี่หนึ่งสามารถทำการหมุนพิเศษเริ่มต้นที่ใบไม้หรือบันทึกการหมุนเพิ่มเติมและทำที่ราก มันสำคัญไหม ตัวอย่างเช่นในภาพที่แนบมาฉันใส่ 4 ลงใน BST และ "splay it" ลงในรูท ที่ด้านบนของรูปฉันแรกหาคู่ซิกแซกที่โหนดใบและดำเนินการสเปรย์ซิกแซกจากด้านล่างออกจากการหมุนขวาสุดท้ายที่ราก ที่ด้านล่างของรูปฉันจะหมุนแปลก ๆ เริ่มจากใบไม้จากนั้นก็ทำรูปซิกซิกซิกไปยังราก อันไหนถูกต้อง? หรือทั้งสองอย่างจะนำไปสู่การแสดงต้นไม้แบบปกติ

3
ความซับซ้อนของเวลาลอการิทึมเทียบกับลอการิทึม
ในการใช้งานจริงจะมีประโยชน์อย่างชัดเจนเมื่อใช้งาน O (บันทึก( บันทึก( n ) )O(log⁡(log⁡(n))\mathcal{O}(\log(\log(n)) แทน O (บันทึก( n ) )O(log⁡(n))\mathcal{O}(\log(n)) อัลกอริทึม? นี่เป็นกรณีที่เมื่อมีการใช้งานหนึ่งต้นสำหรับต้นไม้ Van Emde Boas แทนที่จะเป็นการใช้งานแบบต้นไม้ค้นหาแบบทวิภาค แต่ตัวอย่างเช่นถ้าเราใช้n &lt;106n&lt;106n < 10^6 ในกรณีที่ดีที่สุดอัลกอริธึมลอการิทึมสองครั้งจะมีประสิทธิภาพเหนือกว่าลอการิทึมหนึ่งโดย (โดยประมาณ) ปัจจัยของ 555. และโดยทั่วไปแล้วการใช้งานนั้นยุ่งยากและซับซ้อนมากขึ้น เนื่องจากฉันชอบ BST ส่วนตัวมากกว่าต้นไม้ VEB คุณคิดอย่างไร? หนึ่งสามารถแสดงให้เห็นว่า: ∀ n &lt;106. เข้าสู่ระบบnเข้าสู่ระบบ( บันทึก( n ) )&lt; 5.26146∀n&lt;106. log⁡nlog⁡(log⁡(n))&lt;5.26146\qquad \displaystyle \forall n < 10^6.\ \frac{\log …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.