คำถามติดแท็ก tree-traversal

ความท้าทายที่เกี่ยวข้องกับแนวคิดของต้นไม้ที่มีอยู่ในทฤษฎีกราฟ

22
ปี่ธรรมชาติ # 0 - ร็อค
เป้าหมาย สร้างโปรแกรม / ฟังก์ชั่นที่รับอินพุตNตรวจสอบว่าNคู่ของจำนวนเต็มแบบสุ่มนั้นค่อนข้างดีและส่งคืนsqrt(6 * N / #coprime)หรือไม่ TL; DR ความท้าทายเหล่านี้เป็นการจำลองอัลกอริธึมที่ต้องการเพียงแค่ธรรมชาติและสมองของคุณ หากคุณต้องการ Pi ในระหว่างการเปิดเผยซอมบี้วิธีการเหล่านี้จะไม่เปลืองกระสุน ! มีอีกแปดความท้าทายที่จะมา ชำระเงินโพสต์แซนด์บ็อกซ์เพื่อให้คำแนะนำ การจำลอง เรากำลังจำลองอะไร ความน่าจะเป็นที่สองจำนวนเต็มแบบสุ่มนั้นค่อนข้างไพเราะ (เช่น coprime หรือ gcd == 1) 6/Pi/Piดังนั้นวิธีธรรมชาติในการคำนวณ Pi ก็คือการตักก้อนหินขึ้นสองถัง (หรือกำมือ) นับพวกเขา; ดูว่าgcdของพวกเขาคือ 1; ทำซ้ำ หลังจากที่ทำเช่นนี้คู่หลายครั้งจะมีแนวโน้มต่อsqrt(6.0 * total / num_coprimes) Piหากการคำนวณสแควร์รูทในโลกหลังวิกฤติทำให้คุณกังวลไม่ต้องกังวล! มีวิธีการของนิวตันสำหรับสิ่งนั้น เราจำลองสิ่งนี้ได้อย่างไร รับอินพุต N ทำตามNเวลาต่อไปนี้: สร้างเลขจำนวนเต็มบวกแบบสุ่มiและj กับ 1 <= i …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

27
เขียนล่ามสำหรับ *
งานง่าย เขียนล่ามภาษาที่* นี่คือลิงก์ที่ใหญ่กว่าไปยังวิกิ มีโปรแกรม * ที่ใช้ได้เพียงสามโปรแกรมเท่านั้น: * พิมพ์ "Hello World" * พิมพ์ตัวเลขสุ่มระหว่าง 0 ถึง 2,147,483,647 *+* ทำงานตลอดไป กรณีที่สามจะต้องเป็นวงไม่สิ้นสุดตามข้อกำหนดใน คำถามนี้ การป้อนข้อมูล: อินพุตสามารถใช้วิธีการอินพุตที่ยอมรับได้โดยกฎ I / O มาตรฐานของเรา มันจะเป็นหนึ่งในโปรแกรมข้างต้น เอาท์พุท: กรณีแรกควรพิมพ์อย่างแน่นอนHello Worldโดยมีหรือไม่มีตัวแบ่งบรรทัดต่อท้าย สำหรับกรณีที่สองหากจำนวนเต็มสูงสุดของภาษาของคุณน้อยกว่า 2,147,483,647 ให้ใช้จำนวนเต็มสูงสุดของภาษาของคุณ เคสแรกและเคสที่สองสามารถพิมพ์ไปยังเอาต์พุตที่ยอมรับได้โดยกฎ I / O มาตรฐานของเรา กรณีที่สามไม่ควรให้ผลลัพธ์ใด ๆ เกณฑ์การให้คะแนน: เช่นนี้คือcode-golfคำตอบที่สั้นที่สุดเป็นไบต์ชนะ
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

4
คำนวณตัวเลขจริง
คำนิยาม เป็นจำนวนเต็มบวกnเป็นจำนวนปฏิบัติ (OEIS ลำดับA005153 ) IFF nทุกจำนวนเต็มบวกที่มีขนาดเล็กสามารถแสดงเป็นผลรวมของตัวหารที่แตกต่างของ ตัวอย่างเช่น18เป็นจำนวนจริง: ตัวหารคือ 1, 2, 3, 6, 9, และ 18 และจำนวนเต็มบวกอื่น ๆ ที่น้อยกว่า 18 สามารถเกิดขึ้นได้ดังนี้: 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

7
ประเมินทรี minimax
Alice และ Bob กำลังเล่นเกมเล็กน้อย ก่อนอื่นพวกเขาจะดึงต้นไม้จากโหนดโหนด (ระบุด้วยจุดหนา) โดยไม่มีโหนดภายในที่มีตัวเลขอยู่ที่ใบไม้ โหนดใด ๆ อาจมีลูก ๆ จำนวนเท่าใดก็ได้ เราเริ่มต้นที่รูทและสิ่งแรกที่จะเล่นคืออลิซ (A) เธอต้องเลือกหนึ่งในโหนดย่อยของโหนดปัจจุบัน จากนั้นก็ถึงตาของบ๊อบและเขาก็เลือกโหนดลูก สิ่งนี้จะดำเนินต่อไปจนกว่าจะถึงโหนดลีฟ เมื่อถึงโหนดลีฟเกมจะจบ มันเป็นเป้าหมายของอลิซในการจบที่โหนดที่มีค่ามากที่สุดเท่าที่จะเป็นไปได้และเป้าหมายของ Bob จะจบที่โหนดด้วยค่าที่น้อยที่สุดเท่าที่จะเป็นไปได้ รับต้นไม้ในรูปแบบอาร์เรย์ที่ซ้อนกันคืนค่าของใบไม้ที่จะมาถึงหากอลิซและบ๊อบเล่นได้อย่างสมบูรณ์แบบ ตัวอย่าง: 18: [[67, [[100, [[67, 47], [86], 21, 16], [[46, [14], 35, 85], [71, [18, 63, 69], 99, 22], 3]]], [[18, 32, 42, 80]], [[36, 70], [86, 53, …

10
เขียนโปรแกรมที่สั้นที่สุดเพื่อตรวจสอบว่าต้นไม้ไบนารีมีความสมดุลหรือไม่
สำหรับแต่ละโหนดในต้นไม้ไบนารีที่สมดุลความแตกต่างสูงสุดในความสูงของทรีย่อยของเด็กซ้ายและทรีย่อยของเด็กที่ถูกต้องคือมากที่สุด 1 ความสูงของต้นไม้ไบนารีคือระยะทางจากรูตโหนดไปยังโหนดชายด์ที่อยู่ห่างจากรูทมากที่สุด ด้านล่างเป็นตัวอย่าง: 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 ความสูงของต้นไม้ไบนารี: 4 ต่อไปนี้เป็นต้นไม้ไบนารีและรายงานว่ามีความสมดุลหรือไม่: ต้นไม้ข้างต้นเป็นความไม่สมดุล ต้นไม้ด้านบนมีความสมดุลมีความสมดุล เขียนโปรแกรมที่สั้นที่สุดที่ยอมรับได้ว่าป้อนรากของต้นไม้ไบนารีและคืนค่าเท็จถ้าต้นไม้ไม่สมดุลและค่าจริงถ้าต้นไม้มีความสมดุล อินพุต รากของต้นไม้ไบนารี นี่อาจเป็นในรูปแบบของการอ้างอิงไปยังวัตถุรากหรือแม้แต่รายการที่เป็นตัวแทนที่ถูกต้องของต้นไม้ไบนารี เอาท์พุต ส่งกลับค่าความจริง:ถ้าต้นไม้มีความสมดุล ส่งคืนค่า falsey:หากต้นไม้ไม่สมดุล ความหมายของต้นไม้ไบนารี ต้นไม้เป็นวัตถุที่มีค่าและต้นไม้หรือพอยน์เตอร์อีกสองตัว โครงสร้างของต้นไม้ไบนารีมีลักษณะดังนี้: …

11
ตีความช่วงหลวม
ตีความช่วงหลวม ListSharpเป็นภาษาการเขียนโปรแกรมตีความที่มีคุณสมบัติมากมายหนึ่งในคุณสมบัติเหล่านั้นเป็นผู้สร้างช่วงดัชนี 1 ที่ทำงานเช่นนี้: คุณกำหนดช่วงเป็น(INT) TO (INT)หรือ(INT)ที่ทั้งสองหรือ int เดียวสามารถไปจากค่า min ถึงmax int32 จากนั้นคุณสามารถใช้ช่วงเหล่านั้นเพื่อแยกองค์ประกอบของอาร์เรย์โดยไม่ต้องกลัวที่จะก้าวล้ำขอบเขตของมัน ดังนั้น: 1 TO 5 สร้าง: {1,2,3,4,5} 3 สร้าง: {3} สามารถเพิ่มช่วงได้โดยใช้ANDโอเปอเรเตอร์ 1 TO 5 AND 3 TO 6 สร้าง: {1,2,3,4,5,3,4,5,6} จำได้ว่ามันใช้ได้กับจำนวนลบเช่นกัน 3 TO -3 สร้าง: {3,2,1,0,-1,-2,-3} ความท้าทายมีดังต่อไปนี้: อินพุต อาร์เรย์อักขระและประโยคช่วงที่กำหนดไว้ก่อนหน้าเป็นสตริง เอาท์พุต องค์ประกอบที่ 1 ตามดัชนีตำแหน่งของช่วง (ดัชนีที่ไม่อยู่ / ลบที่มีอยู่แปลเป็นอักขระว่าง) วิธีที่จะชนะ ในฐานะที่เป็นความท้าทายของcode-golfคุณควรสร้างโปรแกรมด้วยจำนวนไบต์ที่สั้นที่สุดที่จะชนะ …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

1
ต้นไม้กลายพันธุ์ mtDNA
พื้นหลัง: MtDNA เป็นส่วนหนึ่งของ DNA มนุษย์ที่ส่งผ่านจากแม่ไปสู่เด็กและมันกลายพันธุ์ไม่ค่อย เนื่องจากนี่เป็นเรื่องจริงสำหรับมนุษย์ทุกคนจึงมีความเป็นไปได้ที่จะสร้างต้นไม้ขนาดใหญ่ที่แสดงให้เห็นว่ามนุษย์ทุกคนมีความสัมพันธ์ซึ่งกันและกันผ่านบรรพบุรุษของพวกเขาตลอดทางจนถึง EVE สมมุติฐาน การกลายพันธุ์ทุกครั้งใน MtDNA เมื่อเด็กเกิดมาจะสร้างสาขาย่อยใหม่จากสาขาหลักในต้นไม้ ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Mitochondrial DNA (mtDNA) ที่นี่: https://en.wikipedia.org/wiki/Mitochondrial_DNA วัตถุประสงค์: โปรแกรมของคุณจะแสดงรายการการนับการกลายพันธุ์ของกิ่งต้นไม้ mtDNA และโปรแกรมของคุณควรแสดงมุมมองแบบต้นไม้ ตัวอย่างอินพุตและเอาต์พุต: อินพุตเป็นตารางที่คั่นด้วยเซมิโคลอน 3 คอลัมน์พร้อมบรรทัดสำหรับแต่ละสาขา ตัวอย่าง: L0a'b'f'k;L0;14 L0a'b'f;L0a'b'f'k;23 L0;mtEVE;10 L0a'b;L0a'b'f;30 L0a;L0a'b;38 L0a1'4;L0a;39 L0a1;L0a1'4;40 L0a1a;L0a1;42 L0a1a NL;L0a1a;43 L0a1a1;L0a1a NL;44 L0a1a2;L0a1a NL;45 L0a1a3;L0a1a NL;44 L0a1 NL;L0a1;41 L0a1b;L0a1 NL;44 L0a1b NL;L0a1b;45 L0a1b1;L0a1b NL;46 …

14
แพดไฟล์ด้วยค่าศูนย์
งานของคุณในวันนี้คือการใช้ไฟล์ที่มีอยู่และต่อท้ายศูนย์จนถึงขนาดที่กำหนด คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้ชื่อของไฟล์ในไดเรกทอรีปัจจุบันที่และจำนวนของไบต์f bในขณะที่รักษาเนื้อหาต้นฉบับของfคุณจะต้องเขียนเลขศูนย์(null null ไม่ใช่ ascii 0s)ไปยังจุดสิ้นสุดเพื่อให้ขนาดใหม่เป็นbไบต์ คุณอาจคิดว่าfมีเพียงตัวอักษรและตัวเลขในชื่อที่คุณได้รับอนุญาตเต็มรูปแบบว่าในตอนแรกมันไม่ใหญ่กว่าbแต่อาจจะมีขนาดใหญ่เท่าbและมีพื้นที่ว่างที่ไม่มีที่สิ้นสุด คุณอาจไม่ถือว่าfไม่ว่างเปล่าหรือไม่มีไบต์เป็นศูนย์อยู่ ไม่ควรแก้ไขไฟล์ที่มีอยู่อื่นและไฟล์ใหม่ไม่ควรมีอยู่หลังจากสิ้นสุดการประมวลผล กรณีทดสอบ เนื้อหาของ f | b | ส่งผลให้เนื้อหาของ f 12345 | 10 | 1234500000 0 | 3 | 000 [ว่าง] | 2 | 00 [ว่าง] | 0 | [ว่าง] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

2
Creasing for Loot
บทนำ หลังจากการต่อสู้ที่ยาวนานคุณสามารถเอาชนะสฟิงซ์ได้ในการแข่งขันปริศนา สฟิงซ์สร้างความประทับใจให้กับทักษะของคุณปรารถนาที่จะให้รางวัลแก่คุณด้วยความฉลาดของคุณและเสกให้กลายเป็นแผ่นหนังเวทย์มนตร์ที่แบ่งออกเป็นแปดกล่องแต่ละกล่องมีตัวเลข "สร้างกระดาษหนัง" สฟิงซ์กล่าว "กล่องซ้อนทับกันและกล่องเหล่านั้นจะรวมเข้าด้วยกันด้วยการบวกหรือการคูณเมื่อกล่องใดกล่องหนึ่งเหลืออยู่ค่าของมันจะเป็นรางวัลของคุณในเหรียญทอง" งาน คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เป็นรายการ / อาเรย์ / ตัวเลขแปดตัวใด ๆ และป้อนกลับ / พิมพ์รางวัลสูงสุดที่เป็นไปได้ที่ได้รับผ่านชุดการดำเนินงาน 'รอยพับ' กลศาสตร์ ของรอยพับ 'การดำเนินงานจะดำเนินการในจำนวนของเซลล์บางส่วนและมีทั้ง+หรือ*เป็นผู้ประกอบการ n เซลล์แรกของรายการจะถูกพับและรวมเข้ากับเซลล์ปลายทางโดยใช้โอเปอเรเตอร์ เซลล์ใด ๆ ที่ไม่ได้ใช้ในการดำเนินการผสานจะไม่ได้รับการแก้ไข นี่คือตัวอย่างของการตีโดยใช้ n = 3 เซลล์: ใช้อย่างใดอย่างหนึ่งนอกจากนี้ซึ่งจะส่งผลในนี้: หรือการคูณซึ่งจะส่งผลให้สิ่งนี้: หมายเหตุ: เพื่อความง่ายการไม่อนุญาตให้มีการ creasing ที่มีเซลล์น้อยกว่า 1 เซลล์เช่นเดียวกับ creasing ที่มีจำนวนเซลล์มากกว่าหรือเท่ากับความยาวของรายการ อย่างไรก็ตามรายชื่อสามารถลดจำนวนเซลล์ได้มากกว่าครึ่ง รายการ 8 เซลล์สามารถยับ 5 ส่งผลให้ในรายการใหม่ของความยาว 5: [0,1,2,3,4,5,6,7]ยับ 5 เซลล์โดยใช้ผู้ประกอบการจะให้+[9,9,9,1,0] …

8
การเข้ารหัสต้นไม้แบบไบนารี
สมมติว่าคุณมีต้นไม้ไบนารีที่สมบูรณ์ (เช่นแต่ละโหนดภายในมีสองลูกหลานที่ไม่ว่างเปล่า) แต่ละโหนดมีจำนวนเต็มไม่ใช่ศูนย์ คุณได้รับภารกิจการเข้ารหัสและถอดรหัสทรีลงใน / จากรายการจำนวนเต็ม ต้นไม้ถูกเก็บไว้ภายในสิ่งที่ชอบ: struct node { int data; struct node *left, *right; }; และคุณต้องใช้สองฟังก์ชั่น: int *encode(struct node *root); struct node *decode(int *array); มันขึ้นอยู่กับคุณว่าคุณเข้ารหัสและถอดรหัสอย่างไร คะแนนสำหรับ: ความยาวการเข้ารหัสขั้นต่ำ ความซับซ้อน (นึกคิดเชิงเส้นในจำนวนโหนด) ความคิดริเริ่ม ไม่มีคะแนนสำหรับความยาวซอร์สโค้ดและคุณไม่ได้ถูก จำกัด ไว้ที่ C ตัวอย่างต้นไม้: 5 / \ 3 2 / \ 2 1 / \ 9 9

2
ล่ามสำหรับทฤษฎีจำนวนโมดูโล n
ประโยคของทฤษฎีจำนวน (สำหรับวัตถุประสงค์ของเรา) เป็นลำดับของสัญลักษณ์ต่อไปนี้: 0และ'(ตัวตายตัวแทน) - ตัวตายตัวแทนหมายถึง+1ดังนั้น0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(เพิ่มเติม) และ*(การคูณ) = (เท่ากับ) (และ)(วงเล็บ) ตัวดำเนินการเชิงตรรกะnand( a nand bคือnot (a and b)) forall (ปริมาณสากล) v0, v1, v2ฯลฯ (ตัวแปร) นี่คือตัวอย่างของประโยค: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) นี่not …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

7
มันเป็นต้นไม้เชิงเส้น (ฉบับที่กว้างแรก)
พื้นหลัง ต้นไม้ที่ไม่มีป้ายกำกับอาจมีลักษณะเช่นนี้: o / | \ o o o | / \ o o o ในการทำให้ต้นไม้นี้เป็นเส้นตรงเราต้องติดป้ายแต่ละโหนดoด้วยจำนวนของโหนดลูก: 3 / | \ 1 0 2 | / \ 0 0 0 จากนั้นเขียนตัวเลขลงในรายการในลักษณะลมหายใจก่อนหมายถึงบรรทัดต่อบรรทัดและจากซ้ายไปขวา: [3, 1, 0, 2, 0, 0, 0] นี่คือการแสดงที่ไม่เหมือนใครและไม่ซ้ำใครของต้นไม้ด้านบนซึ่งหมายความว่าไม่มีต้นไม้บริสุทธิ์ที่แตกต่างกันสองตัวที่จะมีเส้นตรงเหมือนกันและเราสามารถสร้างต้นไม้ดั้งเดิมขึ้นใหม่จากรายการ แม้ว่าต้นไม้แต่ละต้นจะสอดคล้องกับรายการจำนวนเต็มจำนวนหนึ่ง แต่ไม่ใช่รายการจำนวนเต็มแต่ละรายการที่แสดงถึงต้นไม้เชิงเส้นที่ถูกต้อง: ตัวอย่างเช่น[2, 0, 0, 0]ไม่ได้เป็นตัวแทนของต้นไม้ที่ถูกต้องถ้าเราพยายามที่จะทำให้เป็นเส้นตรง [2,0,0,0] -> 2 [0,0,0] -> 2 …

3
สั่งซื้อล่วงหน้า + โพสต์ตามสั่งในการสั่งซื้อ
งาน รับการสำรวจเส้นทางการสั่งซื้อล่วงหน้าและการสั่งซื้อสินค้าของต้นไม้ไบนารีเต็มรูปแบบให้ส่งคืนการสำรวจเส้นทางตามลำดับ การสำรวจเส้นทางจะถูกแสดงเป็นสองรายการซึ่งทั้งคู่ประกอบด้วยnจำนวนเต็มบวกที่แตกต่างกันโดยแต่ละโหนดจะระบุเฉพาะ โปรแกรมของคุณอาจใช้รายการเหล่านี้และออกผลลัพธ์การส่งผ่านตามลำดับโดยใช้รูปแบบ I / O ที่สมเหตุสมผล คุณอาจถือว่าข้อมูลที่ป้อนนั้นถูกต้อง (นั่นคือรายการจริง ๆ แล้วเป็นตัวแทนการสำรวจเส้นทางของต้นไม้บางต้น) นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ คำนิยาม ต้นไม้ไบนารีเต็มรูปแบบเป็นโครงสร้างที่ จำกัด ของโหนดแทนนี่โดยจำนวนเต็มบวกที่ไม่ซ้ำกัน ต้นไม้ไบนารีเต็มรูปแบบคือใบไม้ซึ่งประกอบด้วยโหนดเดียว: 1 หรือสาขาที่ประกอบด้วยหนึ่งโหนดที่มีสองsubtrees (เรียกว่าsubtrees ซ้ายและขวา ) ซึ่งแต่ละอันก็เป็นต้นไม้ไบนารีเต็มรูปแบบ: 1 / \ … … นี่คือตัวอย่างเต็มของต้นไม้ไบนารีเต็ม: 6 / \ 3 4 / \ / \ 1 8 5 7 / \ 2 9 การสำรวจเส้นทางการสั่งซื้อล่วงหน้าของต้นไม้ไบนารีเต็มถูกกำหนดแบบเรียกซ้ำดังนี้: สำรวจเส้นทางการสั่งซื้อล่วงหน้าของใบมีโหนดnรายการ [ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.