প্রথমে, আমি ধরে নেব যে সমস্ত উপাদান আলাদা। আনুপাতিক পরিমাণে কোনও উপাদান আপনাকে উপাদানগুলির সাথে গাছের আকৃতিটি বলতে যাচ্ছে না [3,3,3,3,3]
। সদৃশ উপাদানগুলির সাথে কয়েকটি গাছের পুনর্গঠন করা সম্ভব; আমি জানি না কি যথেষ্ট পর্যাপ্ত শর্ত বিদ্যমান।
নেতিবাচক ফলাফল অব্যাহত রেখে, আপনি কেবল বাইনারি গাছের প্রাক-অর্ডার এবং পোস্ট-অর্ডার সিকুয়েন্সালাইজেশন থেকে পুরোপুরি পুনর্নির্মাণ করতে পারবেন না। পূর্ব [1,2]
অর্ডার, [2,1]
পোস্ট-অর্ডারটির 1
মূলটি 2
থাকতে হবে তবে বাম বা ডান সন্তান হতে পারে। আপনি যদি এই অস্পষ্টতা সম্পর্কে চিন্তা না করেন তবে আপনি নিম্নলিখিত অ্যালগরিদম দিয়ে গাছটি পুনর্গঠন করতে পারেন:
- যাক প্রি-অর্ডার ট্র্যাভেরসাল এবং হতে পোস্টে-অর্ডার ট্র্যাভেরসাল হও। আমাদের অবশ্যই থাকা উচিত এবং এটি গাছের মূল।[x1,…,xn][yn,…,y1]x1=y1
- x2 মূলের শিশু এবং হ'ল ডানদিকের শিশু। যদি তবে মূল নোডটি ; ওভার recurse এবং একক সাবট্রি গড়ে তুলতে।y2x2=y2[x2,…,xn][yn,…,y2]
- অন্যথায়, এবং সূচকগুলি যেমন এবং । হ'ল ডান যে বাম সাবট্রি, প্রাক অর্ডার এবং একইভাবে পোস্ট-অর্ডার ট্র্যাভারসালগুলির জন্য। বাম সাবট্রিতে উপাদান রয়েছে এবং ডান সাবট্রিতে উপাদান রয়েছে। প্রতিটি সাবট্রির জন্য একবার পুনরাবৃত্তি করুন।
উপায় দ্বারা, এই পদ্ধতিটি স্বেচ্ছাসেবী শাখাগুলি সহ গাছগুলিতে সাধারণীকরণ করে। স্বেচ্ছাসেবী শাখাগুলির সাহায্যে, বাম সাবট্রিটির ব্যাপ্তিটি আবিষ্কার করুন এবং দুটি তালিকা থেকে এর উপাদানগুলি কেটে ফেলুন , তারপরে বাম থেকে দ্বিতীয় সাবট্রিকে কেটে ফেলার জন্য পুনরাবৃত্তি করুন এবং এই জাতীয় কিছু।ijx2=yiy2=xj[x2,…,xj−1][xj,…,xn]j−2=n−i+1i−2=n−j+1
j−2
হিসাবে বলেন, চলমান সময় সঙ্গে সবচেয়ে খারাপ ক্ষেত্রে (দুই সন্তান নিয়ে ক্ষেত্রে, আমরা প্রতিটি তালিকা lineraly অনুসন্ধান)। আপনি যদি কোনও সীমাবদ্ধ মানচিত্রের কাঠামোটিকে ইনপুট তালিকাগুলিতে মৌলিক মান থেকে পজিশনে তৈরি করতে তালিকাগুলি তৈরি করেন তবে আপনি এটিকে পরিণত করতে পারেন You । সূচকগুলি থেকে মানগুলিতে যেতে একটি অ্যারে বা সীমাবদ্ধ মানচিত্রও ব্যবহার করুন; বিশ্বব্যাপী সূচকগুলিতে আটকে থাকুন, যাতে পুনরাবৃত্ত কলগুলি পুরো মানচিত্র গ্রহণ করবে এবং কী কাজ করবে তা জানার জন্য যুক্তি হিসাবে একটি পরিসর গ্রহণ করবে।O(n2)Θ(n2)O(nlg(n))nlg(n)
প্রি-অর্ডার ট্র্যাভারসাল এবং ইন-অর্ডার ট্র্যাভারসাল আপনি গাছটিকে নিম্নরূপে পুনর্নির্মাণ করতে পারেন:[x1,…,xn][z1,…,zn]
- মূলটি প্রি-অর্ডার ট্র্যাভারসাল ।x1
- কে- এমন সূচি দেওয়া যাক । তারপরে হ'ল বাম সন্তানের ইন-অর্ডার ট্র্যাভারসাল এবং হ'ল ডান সন্তানের ইন-অর্ডার ট্র্যাভারসাল। উপাদানগুলির সংখ্যার দিকে যাওয়া, হ'ল বাম সন্তানের প্রাক-অর্ডার ট্র্যাভার্সাল এবং ডান সন্তানের। বাম এবং ডান সাবট্রিজগুলি তৈরির জন্য পুনরাবৃত্তি করুন।kzk=x1[z1,…,zk−1][zk+1,…,zn][x2,…,xk][xk+1,…,xn]
আবার এই অ্যালগরিদমটি হিসাবে বলা হয়েছে, এবং যেতে পারে যদি তালিকাটি মান থেকে অবস্থানের জন্য সীমাবদ্ধ মানচিত্রে প্রস্রোস করা হয়।O(n2)O(nlg(n))
অর্ডার-পরবর্তী প্লাস ইন-অর্ডার অবশ্যই প্রতিসাম্যপূর্ণ।