2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
प्राथमिकदत्तांशसंरचना | सम्बन्धित ज्ञान बिन्दु | भवन्तः क्लिक् कर्तुं शक्नुवन्ति | अधोलिङ्केभ्यः ज्ञातव्यम् | एकत्र परिश्रमं कुर्वन्तु! |
---|---|---|---|---|
कालस्य अन्तरिक्षस्य च जटिलतायाः गहनं विश्लेषणम् | अनुक्रमसारणीनां गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम् | एकललिङ्कितसूचीनां गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम् | अग्रणी द्विपक्षीयवृत्ताकारलिङ्कितसूचिकायाः गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम् | ढेरे गहनं गोतां: अन्तर्निहिततर्कस्य अन्वेषणम् |
पङ्क्तयः गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम् | वृत्तपङ्क्तयः गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम् |
अयं लेखः वृक्षैः द्विचक्रीयवृक्षैः च सम्बद्धैः अवधारणाभिः आरभ्यते येन द्विचक्रीयवृक्षाणां विषये अधिकं ज्ञातुं साहाय्यं भवति ।
🌈个人主页:परिचारकः एव
🌈C语言笔记专栏:ग भाषा टिप्पणियाँ
🌈C++笔记专栏: C++ टिप्पणियाँ
🌈初阶数据结构笔记专栏: प्राथमिकदत्तांशसंरचना टिप्पणी
🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅
वृक्षः एकः अरेखीयः दत्तांशसंरचना अस्ति, यः तया निर्मितः अस्तिn(n>=0)
सीमितनोड्स श्रेणीबद्धसम्बन्धयुक्तं समुच्चयं निर्मान्ति तथापि व्यवहारे वृक्षस्य अल्पं मूल्यं भवति, परन्तु द्विचक्रीयवृक्षस्य अधिकं व्यावहारिकं मूल्यं भवति (अस्य समुच्चयस्य वृक्षः इति कथनस्य कारणं यत् तस्य मूलं उपरिमुखं भवति, पत्राणि च अधोमुखः ।इदं बहु वृक्षमिव दृश्यते) ।
M(M>0)
विसंयुक्त समुच्चयःT1、T2、....、Tm
, यस्य प्रत्येकं समुच्चयःTi(1<=i<=m)
वृक्षसदृशसंरचनायुक्तः अन्यः उपवृक्षः । प्रत्येकस्य उपवृक्षस्य मूलनोड् एकः एव पूर्ववर्ती भवति, तथा च 0 वा अधिकाः उत्तराधिकारिणः भवितुम् अर्हन्ति ।यतः वृक्षसंरचना रेखीयसारणीयाः अपेक्षया अधिका जटिला भवति, अतः भण्डारणविधिः अधिका बोझिलः भवति मूल्यपरिधिः, नोड्सयोः मध्ये सम्बन्धः च रक्षितुं आवश्यकम् ।
अत्र पूर्वज्ञानमाश्रिताः अनेकाः पद्धतयः सन्ति- १.
typedef int DataType;
struct Node
{
struct Node* _firstChild1; // 第一个孩子结点
struct Node* _pNextBrother; // 指向其下一个兄弟结点
DataType _data; // 结点中的数据域
};
अवश्यं उपर्युक्तविधयः सीमिताः न सन्ति, मातापितृव्यञ्जनानि, बालव्यञ्जनानि, बालमातापितृव्यञ्जनानि, बालभ्रातृव्यञ्जनानि इत्यादयः अपि सन्ति ।अत्र वयं बहुधा प्रयुक्तानि संक्षेपेण अवगमिष्यामःबाल भ्राता प्रतिनिधित्व
द्विचक्रीयवृक्षः नोड्स् इत्यस्य परिमितसमूहः अस्ति अस्य समुच्चयस्य द्वौ परिस्थितिः भवितुम् अर्हति ।
आकृत्याः निष्कर्षद्वयं कर्तुं शक्यते:
द्विचक्रीयवृक्षे २ इत्यस्मात् अधिका डिग्रीयुक्तः नोडः नास्ति
द्विवृक्षस्य उपवृक्षाः वामदक्षिणउपवृक्षयोः विभक्तुं शक्यन्ते, क्रमः च विपर्ययः कर्तुं न शक्यते, अतः द्विवृक्षः क्रमितः वृक्षः भवति ।
सूचना: कस्यचित् द्विचक्रीयवृक्षस्य कृते सः निम्नलिखितपरिस्थितिभिः निर्मितः भवति (शून्यवृक्षस्य स्थितिः विस्मर्तुं सर्वाधिकं सुलभा अस्ति)
संक्षेपेण सारांशं कर्तुं:
पूर्णस्य द्विचक्रीयवृक्षस्य प्रत्येकं स्तरः पूर्णः भवति
यदि पूर्णस्य द्विचक्रीयवृक्षस्य ऊर्ध्वता n भवति तर्हि प्रथमाः n-1 स्तराः पूर्णाः सन्ति, परन्तु अन्तिमस्तरः पूर्णः न भवेत् ।परन्तु वामतः दक्षिणं प्रति निरन्तरं भवितुमर्हति
सम्पूर्णः द्विचक्रीयवृक्षः अतीव कुशलः दत्तांशसंरचना भवति, पूर्णद्विचक्रीयवृक्षः च विशेषप्रकारस्य पूर्णद्विचक्रीयवृक्षः भवति ।
पूर्णद्विचक्रीयवृक्षः पूर्णद्विचक्रीयवृक्षस्य कृते आवश्यकः पर्याप्तः च शर्तः भवति
एषः साधारणः द्विचक्रीयः वृक्षः, यः वामतः दक्षिणतः निरन्तरः नास्ति ।
द्विधा वृक्षाः सामान्यतया द्वयोः संरचनायोः संग्रहीतुं शक्यन्ते, एकः क्रमिकसंरचना अपरः श्रृङ्खलासंरचना ।
क्रमिकसंरचनाभण्डारणं संग्रहणार्थं सरणीनां उपयोगः भवति,सामान्यतया, सरणीः केवलं पूर्णद्विचक्रीयवृक्षाणां प्रतिनिधित्वार्थं उपयुक्ताः भवन्ति । , यतः यदि द्विचक्रीयवृक्षः पूर्णः नास्ति तर्हि वास्तविकतायां केवलं राशौ भण्डारणार्थं सरणीनां उपयोगं करिष्यति । द्विचक्रीयवृक्षाणां क्रमिकभण्डारणं भौतिकरूपेण एकः सरणी अस्ति तथा च तार्किकरूपेण द्विचक्रीयवृक्षः भवति अग्रिमप्रश्नस्य समाधानार्थं, अस्माभिः भौतिकरूपेण सरणीयाः तार्किकरूपेण द्विचक्रीयवृक्षस्य च संयोजनस्य उपयोगः प्रश्नस्य समाधानार्थं कर्तव्यः
leftchild = parent * 2 + 1;
rightchild = paretn * 2 +2;
parent = (child - 1) / 2;
(वामदक्षिणबालयोः भेदं न करोति)
तृतीयविन्दुविषये व्यक्तिगततर्कमाश्रित्य .leftchild
उपलिपिः विभक्तः अस्तिleftchild- 1
तथा1
,कृतेleftchild-1
कृतेparent
उपलिपिः द्विवारं, for(child - 1) / 2
संचालकः करिष्यतिleftchild
यथा यथा बहिः निष्कासयतु1
आंशिकरूपेण २ इत्यनेन विभक्तः पूर्णाङ्कः ०, ९.leftchild -1
तस्य भागः यथा दृश्यतेleftchild
,तथाrightchild与leftchild相差1
,यतःrightchild = leftchild - 1
उपरि च माध्यमेनleftchild - 1 ~= leftchild
, इति अनुमानं कर्तुं शक्यतेrightchild = leftchild(在进行/2运算,取整数情况下)
द्विचक्रीयवृक्षस्य लिङ्क्ड् भण्डारणसंरचनायाः अर्थः अस्ति यत् द्विचक्रीयवृक्षस्य प्रतिनिधित्वार्थं लिङ्क्ड् सूचीयाः उपयोगः भवति अर्थात् तत्त्वानां तार्किकसम्बन्धं सूचयितुं श्रृङ्खलायाः उपयोगः भवति सामान्यविधिः अस्ति यत् लिङ्क् कृतसूचौ प्रत्येकं नोड् त्रयः क्षेत्राणि सन्ति, दत्तांशक्षेत्रं तथा वामदक्षिणसूचकक्षेत्राणि वामदक्षिणसूचकयोः उपयोगः भवति यत्र वामबालकः दक्षिणबालश्च तत्र लिङ्कबिन्दुनाम् भण्डारणसङ्केताः दत्ताः भवन्ति नोडस्य क्रमशः स्थिताः सन्ति।श्रृङ्खलासंरचना द्विपक्षीयशृङ्खलासु त्रिविभक्तशृङ्खलासु च विभक्ताः सन्ति वर्तमानकाले वयं सामान्यतया अस्माकं अध्ययने द्विचक्रीयशृङ्खलानां उपयोगं कुर्मः पश्चात् यदा वयं रक्त-कृष्णवृक्षाः इत्यादीनि उच्चक्रमस्य दत्तांशसंरचनानि ज्ञास्यामः तदा त्रिविभक्तशृङ्खलानां उपयोगः भविष्यति ।
typedef int BTDataType;
// 二叉链
struct BinaryTreeNode
{
struct BinTreeNode* _pLeft; // 指向当前节点左孩子
struct BinTreeNode* _pRight; // 指向当前节点右孩子
BTDataType _data; // 当前节点值域
}
// 三叉链
struct BinaryTreeNode
{
struct BinTreeNode* _pParent; // 指向当前节点的双亲
struct BinTreeNode* _pLeft; // 指向当前节点左孩子
struct BinTreeNode* _pRight; // 指向当前节点右孩子
BTDataType _data; // 当前节点值域
};
क्रमिकसंरचनाभण्डारणं सरणीद्वारा संगृह्यते ।सामान्यतया, सरणीः केवलं पूर्णद्विचक्रीयवृक्षाणां कृते उपयुक्ताः सन्ति अपूर्णाः द्विचक्रीयवृक्षाः सरणीसंरचनाभण्डारणार्थं उपयुक्ताः न भवन्ति । . परन्तु वास्तविकतायां भण्डारणार्थं सरणीनां उपयोगः तदा एव भवति यदा राशौ उपयुज्यते, तेषु अधिकांशः श्रृङ्खलासंरचनानां माध्यमेन संगृहीतः भवति ।
कारणम् इति:
उपरिष्टाद् अस्य लेखस्य सर्वा सामग्री अस्ति। अत्र Dian Xiaoer इत्यस्य प्राथमिकदत्तांशसंरचनानां विषये टिप्पणीः सन्ति आशासे यत् प्राथमिकदत्तांशसंरचनानां विषये भवद्भ्यः सहायकं भविष्यति!