प्रौद्योगिकी साझेदारी

[प्राथमिकदत्तांशसंरचना] वृक्षाः द्विचक्रीयवृक्षाः च: शुरुतः एव काल्पनिकयात्रा

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

प्राथमिकदत्तांशसंरचनासम्बन्धित ज्ञान बिन्दुभवन्तः क्लिक् कर्तुं शक्नुवन्तिअधोलिङ्केभ्यः ज्ञातव्यम्एकत्र परिश्रमं कुर्वन्तु!
कालस्य अन्तरिक्षस्य च जटिलतायाः गहनं विश्लेषणम्अनुक्रमसारणीनां गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम्एकललिङ्कितसूचीनां गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम्अग्रणी द्विपक्षीयवृत्ताकारलिङ्कितसूचिकायाः ​​गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम्ढेरे गहनं गोतां: अन्तर्निहिततर्कस्य अन्वेषणम्
पङ्क्तयः गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम्वृत्तपङ्क्तयः गहनविश्लेषणम् : अन्तर्निहिततर्कस्य अन्वेषणम्

अयं लेखः वृक्षैः द्विचक्रीयवृक्षैः च सम्बद्धैः अवधारणाभिः आरभ्यते येन द्विचक्रीयवृक्षाणां विषये अधिकं ज्ञातुं साहाय्यं भवति ।

कृपया चित्रविवरणं योजयन्तु
Alt

🌈个人主页:परिचारकः एव
🌈C语言笔记专栏:ग भाषा टिप्पणियाँ
🌈C++笔记专栏: C++ टिप्पणियाँ
🌈初阶数据结构笔记专栏: प्राथमिकदत्तांशसंरचना टिप्पणी

🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅
कृपया चित्रविवरणं योजयन्तु

1. वृक्षसंकल्पना संरचना च

वृक्षः एकः अरेखीयः दत्तांशसंरचना अस्ति, यः तया निर्मितः अस्तिn(n>=0)सीमितनोड्स श्रेणीबद्धसम्बन्धयुक्तं समुच्चयं निर्मान्ति तथापि व्यवहारे वृक्षस्य अल्पं मूल्यं भवति, परन्तु द्विचक्रीयवृक्षस्य अधिकं व्यावहारिकं मूल्यं भवति (अस्य समुच्चयस्य वृक्षः इति कथनस्य कारणं यत् तस्य मूलं उपरिमुखं भवति, पत्राणि च अधोमुखः ।इदं बहु वृक्षमिव दृश्यते) ।

  • मूलग्रन्थिः इति विशेषः नोडः अस्ति ।
  • मूलग्रन्थिं विहाय शेषाः ग्रन्थिः विभक्ताः भवन्तिM(M>0)विसंयुक्त समुच्चयःT1、T2、....、Tm, यस्य प्रत्येकं समुच्चयःTi(1<=i<=m) वृक्षसदृशसंरचनायुक्तः अन्यः उपवृक्षः । प्रत्येकस्य उपवृक्षस्य मूलनोड् एकः एव पूर्ववर्ती भवति, तथा च 0 वा अधिकाः उत्तराधिकारिणः भवितुम् अर्हन्ति ।
  • वृक्षाः पुनरावर्तनीयरूपेण परिभाषिताः भवन्ति, तत्सहकालं च सावधानी कर्तव्या ।वृक्षसंरचनेउपवृक्षाणां मध्ये प्रतिच्छेदः न भवितुमर्हति, अन्यथा वृक्षसंरचना न भविष्यति

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

१.१ वृक्षाणां सम्बद्धाः अवधारणाः

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  • नोडस्य डिग्री: नोड् मध्ये निहितानाम् उपवृक्षाणां संख्या नोडस्य डिग्री इति उच्यते यथा उपरि चित्रे दर्शितम् अस्ति : A 6 भवति;
  • पत्रग्रन्थिः अथवा अन्तग्रन्थिः: 0 डिग्री युक्ताः नोड्स् पत्रग्रन्थिः इति उच्यन्ते यथा उपरि चित्रे दर्शितम् : B, C, H, I... इत्यादयः नोड्स् पत्रग्रन्थिः सन्ति ।
  • अ-अन्त-नोडः शाखा-नोडः वा: एकः नोडः यस्य डिग्री 0 नास्ति;
  • मातापितृनोडः अथवा मातापितृनोडः: यदि कस्मिन् अपि नोड् मध्ये बालनोड्स् सन्ति तर्हि एतत् नोड् तस्य बाल नोड् इत्यस्य मातापितृ नोड् इति उच्यते यथा उपरि चित्रे दर्शितम् अस्ति: A B इत्यस्य मातापितृ नोड् अस्ति;
  • बालग्रन्थिः बालग्रन्थिः वा: नोडेन समाविष्टस्य उपवृक्षस्य मूलग्रन्थिः नोडस्य बालग्रन्थिः इति उच्यते यथा उपरि चित्रे दर्शितम् : B A इत्यस्य बालग्रन्थिः अस्ति
  • भ्राता नोडः: समानं मातापितृनोड् युक्ताः नोड्स् सिबलिंग् नोड् इति उच्यन्ते यथा उपरि दर्शितम् : B तथा C सिबिंग् नोड् स्तः;
  • वृक्षस्य डिग्री: वृक्षे बृहत्तमस्य नोडस्य डिग्री वृक्षस्य डिग्री इति उच्यते यथा उपरि दर्शितम् : वृक्षस्य डिग्री ६ भवति;
  • नोड स्तर: मूलस्य परिभाषातः आरभ्य मूलं प्रथमस्तरः, मूलस्य बालग्रन्थिः द्वितीयस्तरः इत्यादि ।
  • वृक्षस्य ऊर्ध्वता वा गभीरता वा: वृक्षे यथा उपरि दर्शितं तथा नोड्स् इत्यस्य अधिकतमः स्तरः : वृक्षस्य ऊर्ध्वता ४ भवति
  • मातुलः नोडः: येषां नोड्स् मातापितरौ एकस्मिन् स्तरे सन्ति ते परस्परं मातुलभ्रातरः सन्ति यथा उपरि चित्रे दर्शितम् : H and I च परस्परं भ्राता ग्रन्थिः सन्ति;
  • नोडस्य पूर्वजः: मूलतः ग्रन्थिपर्यन्तं शाखासु सर्वे ग्रन्थिः यथा उपरि चित्रे दर्शितम् : A सर्वेषां ग्रन्थिनां पूर्वजः अस्ति;
  • वंशजाः : कस्मिंश्चित् नोडे मूलभूते उपवृक्षे यः कोऽपि नोडः तस्य नोडस्य वंशजः इति उच्यते ।यथा उपरि दर्शितम् : सर्वे ग्रन्थिः A इत्यस्य वंशजाः सन्ति
  • वनः: म (म&gt;०) विसंयुक्तवृक्षसमुच्चयः वनम् इति कथ्यते ।

2. वृक्षस्य भण्डारणप्रतिनिधित्वम्

यतः वृक्षसंरचना रेखीयसारणीयाः अपेक्षया अधिका जटिला भवति, अतः भण्डारणविधिः अधिका बोझिलः भवति मूल्यपरिधिः, नोड्सयोः मध्ये सम्बन्धः च रक्षितुं आवश्यकम् ।

अत्र पूर्वज्ञानमाश्रिताः अनेकाः पद्धतयः सन्ति- १.

  • प्रत्येकस्य बालकस्य पता भवति तथा च सूचकसरण्याः माध्यमेन दत्तांशं संग्रहीतुं शक्नोति (अन्तरिक्षं नियतं भवति, नूतनस्थानस्य आवेदने च व्ययः, स्थानस्य समस्या च भवति)
  • प्रथमविधेः अनुकूलनार्थं सूचकसरण्याः उपयोगः बालकानां संग्रहणार्थं क्रमसारणीरूपेण भवति, यत् नियतस्थानस्य समस्यायाः समाधानं करोति ।
  • अनुशंसितं सामान्यतया प्रयुक्तं समाधानम् : वामबालकदक्षिणभ्राताविधिः (ज्येष्ठः भ्राता द्वितीयं बालकं गृह्णाति, द्वितीयः बालकः च तृतीयं बालकं गृह्णाति, अतः मातापितरौ क्लान्ततायाः आवश्यकता नास्ति)
typedef int DataType;
struct Node
{
    struct Node* _firstChild1; // 第一个孩子结点
    struct Node* _pNextBrother; // 指向其下一个兄弟结点
    DataType _data; // 结点中的数据域
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अवश्यं उपर्युक्तविधयः सीमिताः न सन्ति, मातापितृव्यञ्जनानि, बालव्यञ्जनानि, बालमातापितृव्यञ्जनानि, बालभ्रातृव्यञ्जनानि इत्यादयः अपि सन्ति ।अत्र वयं बहुधा प्रयुक्तानि संक्षेपेण अवगमिष्यामःबाल भ्राता प्रतिनिधित्व

3. द्विचक्रीयवृक्षसंकल्पना

द्विचक्रीयवृक्षः नोड्स् इत्यस्य परिमितसमूहः अस्ति अस्य समुच्चयस्य द्वौ परिस्थितिः भवितुम् अर्हति ।

  1. शून्यवृक्षः
  2. अस्मिन् मूलग्रन्थिः प्लस् वाम उपवृक्षः दक्षिण उपवृक्षः च इति द्वौ द्विचक्रीयवृक्षौ (उपवृक्षः रिक्तवृक्षः भवितुम् अर्हति) भवति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

आकृत्याः निष्कर्षद्वयं कर्तुं शक्यते:

  1. द्विचक्रीयवृक्षे २ इत्यस्मात् अधिका डिग्रीयुक्तः नोडः नास्ति

  2. द्विवृक्षस्य उपवृक्षाः वामदक्षिणउपवृक्षयोः विभक्तुं शक्यन्ते, क्रमः च विपर्ययः कर्तुं न शक्यते, अतः द्विवृक्षः क्रमितः वृक्षः भवति ।

सूचना: कस्यचित् द्विचक्रीयवृक्षस्य कृते सः निम्नलिखितपरिस्थितिभिः निर्मितः भवति (शून्यवृक्षस्य स्थितिः विस्मर्तुं सर्वाधिकं सुलभा अस्ति)

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

३.१ द्विविधवृक्षः यथार्थतः (तत् दृष्ट्वा बहुवारं प्रणामं कर्तव्यम्) ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

4. विशेष द्विचक्रीयवृक्षः

  • पूर्ण द्विचक्रीय वृक्ष :द्विचक्रीयवृक्षः पूर्णद्विचक्रीयवृक्षः भवति यदि प्रत्येकस्मिन् स्तरे नोड्-सङ्ख्या अधिकतमं प्राप्नोति । अन्येषु शब्देषु द्विचक्रीयवृक्षस्य स्तरः K भवति, नोड्स् इत्यस्य कुलसंख्या च २ भवतिके-१, तर्हि पूर्णद्विविधवृक्षः
  • सम्पूर्ण द्विचक्रीय वृक्ष : सम्पूर्णः द्विचक्रीयः वृक्षः अतीव कुशलः दत्तांशसंरचना भवति सम्पूर्णः द्विचक्रीयः वृक्षः पूर्णद्विचक्रीयवृक्षात् निष्पन्नः भवति । K ऊर्ध्वतायुक्तस्य द्विचक्रीयवृक्षस्य कृते n नोड्सयुक्तस्य द्विचक्रीयवृक्षस्य कृते यदि तथा केवलं यदि प्रत्येकं नोडः K ऊर्ध्वतायुक्ते पूर्णद्विचक्रीयवृक्षे 1 तः n पर्यन्तं सङ्ख्यायुक्तैः नोडैः सह एकैकं सङ्गच्छते

संक्षेपेण सारांशं कर्तुं:

  • पूर्णस्य द्विचक्रीयवृक्षस्य प्रत्येकं स्तरः पूर्णः भवति

  • यदि पूर्णस्य द्विचक्रीयवृक्षस्य ऊर्ध्वता n भवति तर्हि प्रथमाः n-1 स्तराः पूर्णाः सन्ति, परन्तु अन्तिमस्तरः पूर्णः न भवेत् ।परन्तु वामतः दक्षिणं प्रति निरन्तरं भवितुमर्हति

  • सम्पूर्णः द्विचक्रीयवृक्षः अतीव कुशलः दत्तांशसंरचना भवति, पूर्णद्विचक्रीयवृक्षः च विशेषप्रकारस्य पूर्णद्विचक्रीयवृक्षः भवति ।

  • पूर्णद्विचक्रीयवृक्षः पूर्णद्विचक्रीयवृक्षस्य कृते आवश्यकः पर्याप्तः च शर्तः भवति

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

४.१ ये परिस्थितयः पूर्णद्विचक्रीयवृक्षस्य न सन्ति

एषः साधारणः द्विचक्रीयः वृक्षः, यः वामतः दक्षिणतः निरन्तरः नास्ति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

5. द्विचक्रीयवृक्षस्य भण्डारणसंरचना

द्विधा वृक्षाः सामान्यतया द्वयोः संरचनायोः संग्रहीतुं शक्यन्ते, एकः क्रमिकसंरचना अपरः श्रृङ्खलासंरचना ।

५.१ क्रमिकं भण्डारणम्

क्रमिकसंरचनाभण्डारणं संग्रहणार्थं सरणीनां उपयोगः भवति,सामान्यतया, सरणीः केवलं पूर्णद्विचक्रीयवृक्षाणां प्रतिनिधित्वार्थं उपयुक्ताः भवन्ति । , यतः यदि द्विचक्रीयवृक्षः पूर्णः नास्ति तर्हि वास्तविकतायां केवलं राशौ भण्डारणार्थं सरणीनां उपयोगं करिष्यति । द्विचक्रीयवृक्षाणां क्रमिकभण्डारणं भौतिकरूपेण एकः सरणी अस्ति तथा च तार्किकरूपेण द्विचक्रीयवृक्षः भवति अग्रिमप्रश्नस्य समाधानार्थं, अस्माभिः भौतिकरूपेण सरणीयाः तार्किकरूपेण द्विचक्रीयवृक्षस्य च संयोजनस्य उपयोगः प्रश्नस्य समाधानार्थं कर्तव्यः

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

५.२ मातापितृ-बाल-नोड्-योः मध्ये उपलिपिनां नियमितः सम्बन्धः (महत्त्वपूर्णः)

  • 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; // 当前节点值域
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

५.४ सारांशः

क्रमिकसंरचनाभण्डारणं सरणीद्वारा संगृह्यते ।सामान्यतया, सरणीः केवलं पूर्णद्विचक्रीयवृक्षाणां कृते उपयुक्ताः सन्ति अपूर्णाः द्विचक्रीयवृक्षाः सरणीसंरचनाभण्डारणार्थं उपयुक्ताः न भवन्ति । . परन्तु वास्तविकतायां भण्डारणार्थं सरणीनां उपयोगः तदा एव भवति यदा राशौ उपयुज्यते, तेषु अधिकांशः श्रृङ्खलासंरचनानां माध्यमेन संगृहीतः भवति ।

कारणम् इति:

  1. सर्वप्रथमं ज्ञातव्यं यत् द्विचक्रीयवृक्षस्य स्वकीया विशेषा तार्किकसंरचना अस्ति अन्येभ्यः दत्तांशसंरचनाभ्यः भिन्ना अस्ति तथा च ढेरदत्तांशं योजयितुं, विलोपयितुं, जाँचयितुं, परिवर्तनं च कर्तुं उपयुक्तम् अस्ति, यतः उद्घाटितं स्थानं बहु स्थानं उपभोगयति तथा च तर्कः अधिकं जटिलः अस्ति।यदि एतादृशी जटिलसंरचना दत्तांशसङ्ग्रहाय उपयुज्यते तर्हि तस्य बहुमूल्यं नास्ति । , आरम्भादेव दत्तांशसञ्चयनाय क्रमिकसारणीयाः उपयोगः श्रेयस्करः स्यात् । तस्मिन् एव काले सामान्यतया द्विचक्रीयवृक्षस्य संरचना पुनरावर्तनीयं भवति, तस्य अपुनरावर्तनीयरूपेण कार्यान्वयनम् अधिकं कष्टप्रदं भवति
  2. साधारणे द्विचक्रीयवृक्षे भण्डारतत्त्वानां घनत्वं अतीव न्यूनं भवेत्, निरन्तरभण्डारसंरचनायाः कारणात् स्थानस्य बहु अपव्ययः भविष्यति
  3. राशौ "heap attribute" इत्यस्य अनुसारं क्रमबद्धः भवति, यत् वृक्षे नोड् इत्यस्य स्थितिं निर्धारयति (अधः heap इत्यस्य परिचये व्याख्यातम्) ।

उपरिष्टाद् अस्य लेखस्य सर्वा सामग्री अस्ति। अत्र Dian Xiaoer इत्यस्य प्राथमिकदत्तांशसंरचनानां विषये टिप्पणीः सन्ति आशासे यत् प्राथमिकदत्तांशसंरचनानां विषये भवद्भ्यः सहायकं भविष्यति!
कृपया चित्रविवरणं योजयन्तु