當前位置:首頁 » 課程大全 » 數據結構課程設計的心得體會

數據結構課程設計的心得體會

發布時間: 2021-02-27 15:53:54

Ⅰ 數據結構課設總結

我正好在做課設,我把我的總結給你。
數據結構是計算機程序設計的重要理論技術基礎,它不僅是計算機科學的核心課程,而且也已經成為其他理工專業的熱門選修課。隨著高級語言的發展,數據結構在計算機的研究和應用中已展現出強大的生命力,它兼顧了諸多高級語言的特點,是一種典型的結構化程序設計語言,它處理能力強,使用靈活方便,應用面廣,具有良好的可移植性。
緊張的兩周數據結構實訓很快就過去了,通過這兩周的實踐學習,不僅使我們鞏固了以前的知識並在此基礎上還對數據結構的特點和演算法有了更深的了解,使我們在這門課程的實際應用上也有了一個提高。
首先這兩周的學習,使我們在鞏固了原有的理論知識上,又培養了靈活運用和組合集成所學過知識及技能來分析、解決實際問題的能力,使我們體會到自身知識和能力在實際中的應用和發揮。其次,它激發了我們創新意識,開發創造的能力和培養溝通能力。另外,讓我們進一步熟悉了數據結構的設計應用。每一處編碼都是在反復的熟悉數據結構的結構特性,及其語法、函數和程序設計思想的過程,對我們數據結構的學習和提高很有益處,並且使我們明白了程序設計過程,如解決一些實際問題,從解決實際問題的角度,我們可以這樣來看:第一要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什麼;第二,從問題的要害入手,從前到後的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導出輸出,在這個過程中,可確定所需的數據結構的基本類型——線性表、棧、隊列、串、數組、廣義表、樹和二叉樹以及圖等,然後確定處理過程——演算法,通過在編譯環境中的編譯與調試,可到最終的程序。最後,在這次的實訓過程中,我們深刻的認識到了自己在學習方面的不足之處,我知道我還有太多的基本的思想沒有真正的理解,當然我們不會灰心,我們會在以後的日子裡努力彌補我們的不足。
在兩周的實訓中,我們也體會到了團隊合作的重要性,從最初的查閱資料到最後的程序的成功運行,我們組有過山窮水盡的困惑;有過柳暗花明的驚喜;有過唇槍舌劍的辯論;有過相互鼓勵的安慰。兩個禮拜的時間我們經歷了很多,也收獲了很多。與其說這次的實訓是體力與腦力的作業,不如說它是合作精神和毅力的考驗。經過這次課程設計,我們不僅學到了很多知識和技能,更重要的是我們學會了如何運用所學知識去解決實際問題。
總之,兩個禮拜的課程設計讓我們受益匪淺。我們深深認識到,要學好一門學科,沒有刻苦鑽研的精神是不行的,只有在不斷的嘗試中,經歷失敗,從失敗中總結經驗,然後再不斷的嘗試,才能獲得成功。

Ⅱ 數據結構課程設計分析報告

這個我也提問過 就是沒人給回復。。。祝樓主好運吧

Ⅲ 學習數據結構的心得體會

這是一門純屬於設計的科目,它需用把理論變為上機調試。在學習科目的第一節課起,李老師就為我們闡述了它的重要性。它對我們來說具有一定的難度。它是其它編程語言的一門基本學科。
剛開始學的時候確實有很多地方我很不理解,每次上課時老師都會給我們出不同的設計題目,對於我們一個初學者來說,無疑是一個具大的挑戰,撞了幾次壁之後,我決定靜下心來,仔細去寫程序。老師會給我們需要編程的內容一些講解,順著老師的思路,來完成自己的設計,我們可以開始運行自己的程序,可是好多處的錯誤讓人看的可怕,還看不出到底是哪裡出現了錯誤,但是程序還是得繼續下去,我多次請教了老師和同學,逐漸能自己找出錯誤,並加以改正。TC里檢查錯誤都是用英文來顯示出來的,經過了這次課程設計,現在已經可以了解很多錯誤在英文里的提示,這對我來說是一個突破性的進步,眼看著一個個錯誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設計能夠成功,是我和我的同學三個人共同努力作用的結果。在這一段努力學習的過程中,我們的編程設計有了明顯的提高。
其實現在想起來,收獲還真是不少,雖然說以前非常不懂這門語言,在它上面花費了好多心血,覺得它很難,是需用花費了大量的時間編寫出來的。現在真正的明白了一些代碼的應用,每個程序都有一些共同點,通用的結構,相似的格式。只要努力去學習,就會靈活的去應用它。

Ⅳ 求一數據結構課程設計心得體會。

資料庫課程設計大賽的塵囂漸漸遠去,懷著對這次大賽的些許不舍,懷著對當初課程設計開始時候的豪情萬丈的決心的留戀,懷著通過這次課程設計積累的信心與鬥志,我開始寫這篇文章,為自己的足跡留下哪怕是微不足道但是對自己彌足珍貴的痕跡並期望與大家共勉。

首先,讓我的記憶追溯到大二暑假,在老大的指引下(老大勸我學asp.net),我接觸到Microsoft 公司的.NET產品。那個時候我已經學過vc和asp,因為windows程序設計實驗的課的關系,接觸過vb,但是沒有專門去學他,因為習慣了c++裡面的class,int,覺得vb的sub,var 看著就不是很順心。我是一個好奇心很強的人,突然看到了一個號稱「.net是用於創建下一代應用程序的理想而又現實的開發工具」,而且主推c#語言,由於對c語言的一貫好感,我幾乎是立刻對他產生了興趣。我就開始了對c#的學習,任何語言都不是孤立存在的,所以數據交互是很重要的,暑假的時候我把我們這學期的課本資料庫系統概論看了一遍。我記得以前用c語言編程的時候,數據是在內存中申請空間,譬如使用數組等等。很耗費內存空間。這個時候就是資料庫站出來的時候啦,於是我又裝上了sql server2000,以前學asp的時候用的是access,那個時候只是照著人家做,理論是什麼也不是很清楚。

通過一個暑假的學習,基本搞清楚了理論方面的東西,具體怎麼用也不是很清楚。但是這為這學期的課程設計打下了鋪墊。

來到學校後,隨著這學期的資料庫課程大賽開始了,我有一個看法就是我自己應該具備的能力不是我會多少,而是我應該具備快速學會東西的能力。遇到什麼就學什麼。我們有時候很容易被一些專業名詞說嚇著,包括什麼建模,軟體工程,數據分析,數據挖掘等等。我身邊就有很多同學被這些紙老虎所唬住,而沒有勇氣去接觸他們,總是說這個太難了之類的退堂鼓的話,他們低估了自己的潛力同時也壓抑住了他們自己的好奇心。其實都是紙老虎,又不是什麼國家科研難題,只是去用一些工具,發明工具是很難,但是用一個工具就容易多了,just do it!我記得我做這個資料庫之前,我們老師說要做好前期分析,我就在網上搜索用什麼分析工具好。最後我選擇了roseUML建模工具。在此之前,我腦袋裡面沒有軟體建模的思想,什麼UML建模對我而言就是一張空白的紙。但是真正接觸後並沒有想像的那麼難,有什麼不懂的上網去搜索,這是一個信息橫流的世界,有google,就沒有不能解決的知識難題。以及後來的資料庫分析的時候用到的powerdesigner也是一樣。

開發的時候我想過用什麼架構,c/s模式?模式有很多,怎麼選擇?我就上網搜索現在最流行的架構是什麼。結果搜到了MVC架構,就是你啦。我決定用這個架構,不會,沒關系,咱學。Just do it!前期工作準備好後,那麼我就得把我暑假學的.net加以實踐。這個時候我更加深入的了解了利用ado.Net操縱資料庫的知識。並且對資料庫裡面的存儲過程有了比較深入的了解。經過大概2個多星期的奮斗,我完成了我的資料庫課程設計--基於.net數據集的圖書館管理系統。並最後非常榮幸的獲得了大賽的一等獎以及以及新技術應用獎。

與其臨淵羨魚,不如退而結網。這次資料庫課程設計給我的最大的印象就是如果自己有了興趣,就動手去做,困難在你的勇氣和毅力下是抬不了頭的。從做這個資料庫開始無論遇到什麼困難,我都沒有一絲的放棄的念頭。出於對知識的渴望,出於對新技術的好奇,出於對一切未知的求知。我完成了這次資料庫課程設計,不過這只是我學習路上的驛站,未來十年.NET的核心技術就是XML[至少微軟是這么宣傳的],我會繼續學習它,包括jave公司的j2ee我也很想試試,語言本來就是相通的,just do it!語言並不重要畢竟它僅僅是工具,用好一個工具並不是一件值得為外人道的事情,主要是了解學習思想。古語說的好:學無止境啊!

我很慶幸我參加了這次資料庫大賽,讓我確實打開了眼界。

Ⅳ 高分跪求《數據結構課程設計》報告

難度很大呀.

Ⅵ 數據結構課程設計的需求分析怎麼寫

一 需求抄分析:
在該部襲分中根據設計題目的要求,充分地分析和理解問題,敘述系統的功能要求,明確問題要求做什麼?以及限制條件是什麼?
1.1問題描述
1.2基本要求
(1) 輸入的形式和輸入值的范圍;
(2) 輸出的形式;
(3) 程序所能達到的功能;

二 概要設計
說明本程序中用到的所有抽象數據類型的定義。主程序的流程以及各程序模塊之間的層次(調用)關系。
1、 數據結構
2、 程序模塊
3、各模塊之間的調用關系以及演算法設計
三 詳細設計
實現概要設計中定義的所有數據類型,對每個操作寫出偽碼演算法;對主程序和其他模塊也都需要寫出偽碼演算法(偽碼演算法達到的詳細程度建議為:按照偽碼演算法可以在計算機鍵盤直接輸入高級程序設計語言程序);寫出出函數和過程的調用關系.
四 測試與分析
測試數據,輸出測試的結果,這里的測試數據應該完整和嚴格。並對結果進行分析。
五 總結
總結可以包括 : 課程設計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對《數據結構》課程的認識等內容。

Ⅶ 求一份數據結構課程設計報告

//class CNode.h
#ifndef __CNODE_H__
#define __CNODE_H__

#include <iostream>
using namespace std;
struct stData //出生年月結構
{
int m_nYear;
int m_nMonth;
int m_nDay;
};

struct stResult //五門課成績結構
{
double m_dSubject_1; //自己改成績的名稱
double m_dSubject_2;
double m_dSubject_3;
double m_dSubject_4;
double m_dSubject_5;
};

struct stStudent //聲明學生信息的結構
{
string m_strNumber; //學生學號
string m_strName; //姓名
char m_chSex; //性別
struct stData m_stData; //出生年月
string m_strAppearance; //政治面貌
struct stResult m_stResult; //五門課成績
};

typedef class CNode
{
private:
struct stStudent m_stStudent;
CNode* m_Next;
public:
CNode(); //構造函數
~CNode(); //析構函數
void SetNodeData(); //設置結點內容的函數成員
stStudent GetNodeData(); //獲取結點內容的函數成員
void SetNodeNext(CNode* _Next); //設置結點Next指針的函數成員
void ShowNodeData(); //輸出結點內容的函數成員
CNode* GetNodeNext(); //獲取結點Next指針的函數成員
}LinkNode;

#endif

//class CLinkList
#ifndef __CLINKLIST_H__
#define __CLINKLIST_H__

#include "CNode.h"

typedef class CLinkList
{
private:
LinkNode* m_Head; //鏈表的頭指針
LinkNode m_Node; //鏈表的頭結點
public:
CLinkList(); //構造函數
~CLinkList(); //析構函數
void CreateList(); //初始化鏈表的函數成員
LinkNode* GetListNode(int _nIndex); //按位置查找指定位結點的成員函數
void InsertList(int _nIndex); //插入結點的成員函數
void DeleteList(int _nIndex); //刪除某一結點的成員函數
LinkNode* GetHeadList(); //獲取頭指針的成員函數
void SetListData(int _nIndex); //設置鏈表中某一結點的值的成員函數
void ShowListData(int _nIndex); //這個是現實鏈表中某一結點值的函數成員
void DestroyList(int _nIndex); //銷毀某一位置以後鏈表的成員函數
void ShowList(); //顯示鏈表的成員函數
}LinkList;

#endif

//class CLinkList

#include "CLinkList.h"
#include "CNode.h"

CLinkList::CLinkList()
{
cout << "這個是構造函數"<< endl;

m_Head = &m_Node; //鏈表的頭指針指向頭結點
m_Node.SetNodeNext(NULL); //將頭結點的Next指針設置為NULL;
}

CLinkList::~CLinkList()
{
cout << "這個是析構函數" << endl;
}

void CLinkList::CreateList() //以向後追加的方式創建一個鏈表,輸入0退出
{
int nTemp = 0; //定義一個臨時變數用於標志程序結束
cout << "歡迎來創建鏈表 !" << endl;
CNode * pTemp = NULL; //定義一個臨時結點指針,用來增加新結點用
CNode * pNode = m_Head; //定義一個標記指針,首先叫其指向頭結點

while(1)
{
pTemp = new LinkNode;

cout << "請輸入下一個結點的內容!" << endl;
pTemp->SetNodeData(); //設置鏈表中結點的內容

cout << "如果想繼續輸入下一個學生的信息請輸入 1,否則輸入 0" << endl;
cin >> nTemp;
if ('0' == nTemp)
{
break;
}
pNode->SetNodeNext(pTemp); //讓鏈尾的Next指向新建的結點
pNode = pTemp; //將結尾元素向後移
}
cout << "創建鏈表結束" << endl;
}

LinkNode* CLinkList::GetListNode(int _nIndex)
{
cout << "這個是按位置查找指定位結點的成員函數" << endl;

LinkNode* pNode = m_Head->GetNodeNext(); //定義一個臨時的結點指針,初始化指向頭結點
int Temp = 0; //定義一個臨時的變數,用來標記已檢查結點的個數的

if(-1 == _nIndex) //返回頭結點(即頭指針)
{
return m_Head;
}

if(_nIndex < -1) //_nIndex控制條件
{
cout << "您輸入的是錯誤的位置!" << endl;
return 0;
}

while(pNode != NULL)
{
if(_nIndex == Temp)
{
return pNode;
}
pNode = pNode->GetNodeNext(); //臨時結點向後移動
++Temp;
}

return pNode; //沒找到結點就返回NULL

}

void CLinkList::ShowListData(int _nIndex);

void CLinkList::InsertList(int _nIndex) //插入結點的函數成員
{
cout << "這個是插入結點的成員函數" << endl;

LinkNode* pNode = GetListNode(_nIndex - 1); //定義一個結點類的指針,指向的是要插入位置的前一指針

LinkNode* pTemp = new CNode; //定義一個臨時結點指針,用來增加新結點用

pTemp->SetNodeData(); //設置插入結點的內容

pTemp->SetNodeNext(pNode->GetNodeNext());
pNode->SetNodeNext(pTemp);
}

void CLinkList::DeleteList(int _nIndex)
{
cout << "這個是刪除某一結點的成員函數" << endl;

LinkNode* pNode = GetListNode(_nIndex - 1); //定義一個結點類的指針,指向的是要刪除位置的前一指針
LinkNode* pTemp = NULL; //定義一個臨時結點指針,用來指向要刪除的結點

pTemp =pNode->GetNodeNext(); //把pTemp指向要刪除的結點

pNode->SetNodeNext(pTemp->GetNodeNext()); //把pNode指向要刪除的結點的後一個結點

delete pTemp; //刪除結點
pTemp = NULL;
}

LinkNode* CLinkList::GetHeadList()
{
cout << "這個是獲取頭指針的成員函數" << endl;

return m_Head;
}

void CLinkList::SetListData(int _nIndex)
{
cout << "這個是設置鏈表中某一結點的值的成員函數" << endl;

CNode *pNode = GetListNode(_nIndex); //定義一個結點類的指針,指向的是要修改內容位置的結點

pNode->SetNodeData(); //修改內容

}

void CLinkList::ShowListData(int _nIndex)
{
cout << "這個是顯示鏈表中某一結點值的成員函數" << endl;

CNode *pNode = GetListNode(_nIndex); //定義一個結點類的指針,指向的是要獲取內容位置的結點

pNode->ShowNodeData(); //返回想要得到位置的結點內容
}

void CLinkList::DestroyList(int _nIndex)
{
cout << "這個是銷毀某一位置以後鏈表的成員函數" << endl;

LinkNode* pTemp = GetListNode(_nIndex - 1); //定義一個結點指針,指向要銷毀位置的前一結點
LinkNode* pNode = pTemp->GetNodeNext(); //定義一個結點指針,指向要銷毀位置的結點

while(pTemp->GetNodeNext() != NULL) //銷毀動作的結束條件或初始條件
{
pTemp->SetNodeNext(pNode->GetNodeNext()); //把需要銷毀的位置的前結點的Next指向銷毀位置的下一個結點
delete pNode; //銷毀結點

pNode = pTemp->GetNodeNext(); //把pNode重新指向要銷毀位置的結點
}
}

void CLinkList::ShowList()
{
cout << "這個是顯示鏈表的成員函數" << endl;

int nTemp = 0; //定義一個臨時的整形變數用來控制輸入的個數

LinkNode* pTemp = m_Head->GetNodeNext(); //定義一個結點類指針,指向第0位的結點
if(NULL == pTemp)
{
cout << "這是個空鏈" << endl;
}

while(pTemp != NULL)
{
pTemp->ShowNodeData();

++nTemp;
if(0 == nTemp % 5 && nTemp != 0) //控制每行只能輸出5個結點的內容
{
cout << endl;
}

pTemp = pTemp->GetNodeNext();
}
}

//class CNode
#include "CNode.h"

CNode::CNode() //構造函數
{
//m_stStudent = {0};
m_Next = NULL;
}

CNode::~CNode() //析構函數
{
}

void CNode::SetNodeData()
{
char* pNumber = new char[30]; //用來接收字元串的臨時變數
char* pName = new char[30];
char* pAppearance = new char[30];

cout << "學生學號: " << endl;
cin >> pNumber;
m_stStudent.m_strNumber = pNumber;
cout << "姓名: " << endl;
cin >> pName;
m_stStudent.m_strName = pName;
cout << "性別: " << endl;
cin >> m_stStudent.m_chSex;
cout << "出生年月: " << endl;
cout << "m_stData.m_nYear" << endl;
cin >> m_stStudent.m_stData.m_nYear;
cout << "m_stData.m_nMonth" << endl;
cin >> m_stStudent.m_stData.m_nMonth;
cout << "m_stData.m_nDay" << endl;
cin >> m_stStudent.m_stData.m_nDay;
cout << "政治面貌: " << endl;
cin >> pAppearance;
m_stStudent.m_strAppearance = pAppearance;
cout << "五門課成績: " << endl;
cout << "m_dSubject_1: " << endl;
cin >> m_stStudent.m_stResult.m_dSubject_1;
cout << "m_dSubject_2: " << endl;
cin >> m_stStudent.m_stResult.m_dSubject_2;
cout << "m_dSubject_3: " << endl;
cin >> m_stStudent.m_stResult.m_dSubject_3;
cout << "m_dSubject_4: " << endl;
cin >> m_stStudent.m_stResult.m_dSubject_4;
cout << "m_dSubject_5: " << endl;
cin >> m_stStudent.m_stResult.m_dSubject_5;

delete []pNumber; //釋放內存
pNumber = NULL; //指針置空

delete []pName; //釋放內存
pName = NULL;

delete []pAppearance; //釋放內存
pAppearance = NULL;
}

stStudent CNode::GetNodeData() //返回結點內容(即學生信息)
{
return m_stStudent;
}

void CNode::SetNodeNext(CNode* _Next)
{
m_Next = _Next;
}

void CNode::ShowNodeData()
{
const char* pNumber = m_stStudent.m_strNumber.c_str(); //用來接收字元串的臨時變數
const char* pName = m_stStudent.m_strNumber.c_str();
const char* pAppearance = m_stStudent.m_strAppearance.c_str();

cout << "學生學號: " << pNumber << '\t' << "姓名: " << pName << '\t' << "性別: " << m_stStudent.m_chSex;
cout << "出生年月: " << m_stStudent.m_stData.m_nYear << ',' << m_stStudent.m_stData.m_nMonth << ',' << m_stStudent.m_stData.m_nDay;
cout << "政治面貌: " << pAppearance << "五門課成績: " << endl;
cout << "m_dSubject_1: "<< m_stStudent.m_stResult.m_dSubject_1<< endl;
cout << "m_dSubject_2: "<< m_stStudent.m_stResult.m_dSubject_2<< endl;
cout << "m_dSubject_3: "<< m_stStudent.m_stResult.m_dSubject_3<< endl;
cout << "m_dSubject_4: "<< m_stStudent.m_stResult.m_dSubject_4<< endl;
cout << "m_dSubject_5: "<< m_stStudent.m_stResult.m_dSubject_5<< endl;

}

CNode* CNode::GetNodeNext()
{
return m_Next;
}

#include "CLinkList.h"
#include "CNode.h"

void Text(); //測試函數聲明

int main()
{
cout << "這是mian函數" << endl;
Text();
return 0;
}

void Text()
{
cout << "這個是測試函數" << endl;

LinkList* pList = new LinkList; //創建一個內存鏈表對象

cout << "------------------CreateList-----------------------------" << endl;
pList->CreateList(); //初始化鏈表的函數成員
pList->ShowList();
cout << endl;

cout << "------------------GetListNode-----------------------------" << endl;
LinkNode* pNode = NULL; //定義一個臨時的結點類指針用於檢測查找函數成員
pNode = pList->GetListNode(3); //按位置查找指定位結點的成員函數的測試

if(pNode)
{
cout << "用按位置查找的方法找到了指定位結點" << endl;
}
else
{
cout << "對不起,用按位置查找的方沒有找到指定位結點" << endl;
}
cout << endl;

cout << "------------------InsertList-----------------------------" << endl;
pList->InsertList(0); //插入結點的成員函數的測試
pList->ShowList();
cout << endl;

cout << "------------------DeleteList-----------------------------" << endl;
pList->DeleteList(0); //刪除某一結點的成員函數的測試
pList->ShowList();
cout << endl;

cout << "------------------GetHeadList-----------------------------" << endl;
pNode = NULL;
pNode = pList->GetHeadList(); //獲取頭指針的成員函數的測試
if(pNode)
{
cout << "已經返回了頭指針" << endl;
}
else
{
cout << "對不起,頭指針為空" << endl;
}
cout << endl;

cout << "------------------GetHeadList-----------------------------" << endl;
pList->SetListData(3); //設置鏈表中某一結點的值的成員函數的測試
pList->ShowList();
cout << endl;

cout << "------------------GetListData-----------------------------" << endl;
cout << "pList->ShowListData(3) =";
pList->ShowListData(3); //獲取鏈中某一結點值的成員函數的測試
cout << endl;

cout << "------------------DestroyList(3)-----------------------------" << endl;
pList->DestroyList(3); //銷毀第3位置以後鏈表的成員函數的測試
pList->ShowList();
cout << endl;

cout << "------------------DestroyList(0)-----------------------------" << endl;
pList->DestroyList(0); //銷毀第0位置以後鏈表的成員函數的測試
pList->ShowList();
cout << endl;

delete pList; //釋放內存
pList = NULL; //指針置空

}

你的要求太多 , 沒仔細看, 我把我給別人寫的賦值給你吧 , 我已經寫的很全了,程序有問題可以給我留言

Ⅷ c++數據結構課程設計總結怎麼寫(最好是三段的)

#include <malloc.h>
#include<stdio.h>
#define NUM 7 //宏定義
int i; //變數類型定義
typedef struct Node{
int data ; //數據域
struct Node *next; //指針域
}Node,*LNode; //用結構體構造結點及相應的指針

typedef struct Tree{
int data ;
struct Tree *left ;
struct Tree *right ;
}Tree,*LTree ; //用結構體構造樹及相應的指針

CreateList( LNode Head ) //創建單鏈表
{
for(int i=1 ; i <=NUM ; i++) //創建循環,依次輸入NUM個數據
{
LNode temp ; //中間結點
temp = (LNode) malloc( sizeof( Node ) ); //動態存儲分配

temp-> next = NULL; //中間結點初始化
scanf("%2d",&temp-> data); //輸入賦值到結點temp數據域
temp-> next = Head-> next ;
Head-> next = temp ; //將temp結點插入鏈表

}
return 1 ;//返回1
}

InsertSqTree( LTree &root , LNode temp ) //二叉樹排序原則的設定
{
if(!root) //root為NULL時執行
{
root = (LTree)malloc(sizeof(Tree)); //動態存儲分配

root-> left =NULL;
root-> right=NULL; //初始化
root-> data = temp-> data ; //賦值插入
return 1 ; //函數正常執行,返回1
}
else
{
if(root-> data>= temp-> data)
return InsertSqTree( root-> left , temp ) ; //比較插入左子樹
else if(root-> data <temp-> data)
return InsertSqTree( root-> right , temp ); //比較插入右子樹
}
return 1 ; //如果滿足,就不做處理,返回1
}

void BianLiTree(LTree root) //採用中序遍歷,實現將所有數字按從左向右遞增的順序排序
{
if(root) //root不為空執行
{BianLiTree(root-> left); //左遞歸處理至葉子結點,當root-> left為NULL時不執行
printf("%4d ",root-> data); //輸出
BianLiTree(root-> right); //處理右結點
}
}

int main()
{
LNode Head = NULL;
LTree root = NULL ; //初始化
Head = (LNode) malloc(sizeof(Node)); //動態存儲分配

Head-> next = NULL ; //初始化
printf("please input numbers:\n");//輸入提示語句
if(!CreateList( Head )) //建單鏈表成功返回1不執行下一語句
return 0; //結束函數,返回0
LNode temp = Head-> next ; //將頭指針的指針域賦值予中間結點
while( temp ) //temp為NULL時停止執行
{
if(!InsertSqTree( root ,temp )) //排序正常執行,返回1不執行下一語句
return 0 ; //結束函數,返回0
Head-> next = temp-> next ; //將中間指針的指針域賦值予頭結點指針域
free(temp); //釋放空間
temp = Head-> next ; //將頭指針的指針域賦值予中間結點,以上三句實現了temp指針後移
}
printf("the result is:\n");//輸出提示語句
BianLiTree(root); //採用中序遍歷,輸出並觀察樹結點
return 1; //函數正常結,返回1
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919