প্রাক-, পোস্ট- এবং অর্ডার ক্রমক্রমিকরণের কোন সমন্বয়গুলি অনন্য?


28

আমরা পোস্ট-অর্ডার জানি,

post L(x)     => [x]
post N(x,l,r) => (post l) ++ (post r) ++ [x]

এবং প্রাক অর্ডার

pre L(x)     => [x]
pre N(x,l,r) => [x] ++ (pre l) ++ (pre r)

এবং ক্রম ট্র্যাভার্সাল রেসপন্স। sequentialisation।

in L(x)     => [x]
in N(x,l,r) => (in l) ++ [x] ++ (in r)

আমরা সহজেই পৃথক কী / লেবেলগুলি জোড় করে ধরে নিলেও, একটি সহজেই দেখতে পাবে যে প্রদত্ত গাছটিকে দুটিই স্বতন্ত্রভাবে বর্ণনা করে না।

তিনটির কোন সংমিশ্রণটি শেষ পর্যন্ত ব্যবহার করা যেতে পারে এবং কোনটি সম্ভব নয়?

ইতিবাচক উত্তরে গাছটিকে পুনর্গঠনের জন্য একটি (দক্ষ) অ্যালগরিদম এবং কেন এটি সঠিক তা প্রমাণ (ধারণা) অন্তর্ভুক্ত করা উচিত। নেতিবাচক উত্তরের ক্ষেত্রে পাল্টা উদাহরণ দেওয়া উচিত, অর্থাত্ বিভিন্ন গাছের সমান প্রতিনিধিত্ব রয়েছে।

উত্তর:


16

প্রথমে, আমি ধরে নেব যে সমস্ত উপাদান আলাদা। আনুপাতিক পরিমাণে কোনও উপাদান আপনাকে উপাদানগুলির সাথে গাছের আকৃতিটি বলতে যাচ্ছে না [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,,xj1][xj,,xn]j2=ni+1i2=nj+1
    j2

হিসাবে বলেন, চলমান সময় সঙ্গে সবচেয়ে খারাপ ক্ষেত্রে (দুই সন্তান নিয়ে ক্ষেত্রে, আমরা প্রতিটি তালিকা lineraly অনুসন্ধান)। আপনি যদি কোনও সীমাবদ্ধ মানচিত্রের কাঠামোটিকে ইনপুট তালিকাগুলিতে মৌলিক মান থেকে পজিশনে তৈরি করতে তালিকাগুলি তৈরি করেন তবে আপনি এটিকে পরিণত করতে পারেন You । সূচকগুলি থেকে মানগুলিতে যেতে একটি অ্যারে বা সীমাবদ্ধ মানচিত্রও ব্যবহার করুন; বিশ্বব্যাপী সূচকগুলিতে আটকে থাকুন, যাতে পুনরাবৃত্ত কলগুলি পুরো মানচিত্র গ্রহণ করবে এবং কী কাজ করবে তা জানার জন্য যুক্তি হিসাবে একটি পরিসর গ্রহণ করবে।O(n2)Θ(n2)O(nlg(n))nlg(n)

প্রি-অর্ডার ট্র্যাভারসাল এবং ইন-অর্ডার ট্র্যাভারসাল আপনি গাছটিকে নিম্নরূপে পুনর্নির্মাণ করতে পারেন:[x1,,xn][z1,,zn]

  • মূলটি প্রি-অর্ডার ট্র্যাভারসাল ।x1
  • কে- এমন সূচি দেওয়া যাক । তারপরে হ'ল বাম সন্তানের ইন-অর্ডার ট্র্যাভারসাল এবং হ'ল ডান সন্তানের ইন-অর্ডার ট্র্যাভারসাল। উপাদানগুলির সংখ্যার দিকে যাওয়া, হ'ল বাম সন্তানের প্রাক-অর্ডার ট্র্যাভার্সাল এবং ডান সন্তানের। বাম এবং ডান সাবট্রিজগুলি তৈরির জন্য পুনরাবৃত্তি করুন।kzk=x1[z1,,zk1][zk+1,,zn][x2,,xk][xk+1,,xn]

আবার এই অ্যালগরিদমটি হিসাবে বলা হয়েছে, এবং যেতে পারে যদি তালিকাটি মান থেকে অবস্থানের জন্য সীমাবদ্ধ মানচিত্রে প্রস্রোস করা হয়।O(n2)O(nlg(n))

অর্ডার-পরবর্তী প্লাস ইন-অর্ডার অবশ্যই প্রতিসাম্যপূর্ণ।


এখানে কি টাইপো রয়েছে: "[1,2] প্রির্ডার, [1,2] পোস্ট-অর্ডারটির মূলটিতে 1 থাকতে হবে তবে 2 বাম বা ডান সন্তান হতে পারে such" এই জাতীয় পোস্টের অর্ডার গাছ 2 [বাম বা ডান সন্তানের কিনা [1,1] নয় [1,2] হবে। এছাড়াও, আপনার অর্থ কি যদি প্রির্ডার এবং পোস্টর্ডার উভয়ই দেওয়া হয় তবে আমরা গাছটি পুনর্গঠন করতে পারি না, বা আপনি কি বোঝাতে চেয়েছেন যে যদি সেগুলির মধ্যে একটি মাত্র দেওয়া হয় তবে আমরা গাছটিকে পুনর্গঠন করতে পারি না?
সিইজিআরডি

@ সিইজিআরডি প্রকৃতপক্ষে, পোস্টর্ডারটি একটি টাইপ ছিল। উদাহরণটি দেখায় যে আপনি এই ক্ষেত্রে গাছটিকে পুরোপুরি পুনর্গঠন করতে পারবেন না: আপনি 2বাম বাচ্চা বা ডান সন্তান কিনা তা জানতে পারবেন না । এটি পুনর্গঠন অ্যালগরিদমের "একক সাবট্রি" কেসের সাথে মিলে যায়।
গিলেস'স-অশুভ হওয়া বন্ধ করুন

এটি কীভাবে পরিবর্তিত হয় যদি আমরা জানি যে এটি একটি বাইনারি অনুসন্ধান গাছ? আপনার উদাহরণের সাধারণ মামলার জন্য ([1,2] প্রির্ডার, [২,১] উত্তর-অর্ডার) আমরা নির্ধারণ করতে সক্ষম হব যে মূলটি 1 এবং সেই 2টি সঠিক সন্তান (কারণ 2 টি 1 এর চেয়ে বেশি) ... ঠিক আছে?
fersarr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.