高分求助!!一个妹妹的命运也许就掌握在你的手里! 9494,还叫kidgun,这个mm有点酷。3是不是还要有一个先序遍历序列才能唯一确定二叉树啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 f_ky(毛蛋哥哥) 说的是,网上所谓的“美女”“妹妹”、“帅哥”无凭无据的,难道你还能把自己的网页贴上来不成。偶像,土!!!这四个全是数据结构中的小玩意:1、堆栈2、单链表3、二叉树的生成和中序遍历4、设置一个记录(学号、姓名、语文、数学、总分),对总分排序(如快速排序、堆排序等),然后就是个输出问题了。查查《数据结构》这本书,不拘那一个版本,这些问题简单得很。但千万不要把几道作业题或是考试题和“命运”联系起来,这种玩意能当考题或是升职的话,那么这里所有的人都可以竞选美国总统了。 typedef struct _NODE{ int nData; _NODE* pNext;} NODE,* LPNODE;LPNODE lpHead = NULL; //head of stackvoid CreateStack(LPNODE& lpHead){ LPNODE lpWork = NULL; do{ lpWork = new NODE; cout<<"Please input number:"; cin>>lpWork->nData; if(lpWork->nData != 0){ lpWork->pNext = lpHead; lpHead = lpWork; } }while(lpWork->nData != 0); delete lpWork; //The last node is excrescent, so delete it}int GetLength(LPNODE lpHead){ int nLength = 0; LPNODE lpWork = lpHead; while(lpWork != NULL){ nLength++; lpWork = lpWork->pNext; } return nLength;}float GetAverage(LPNODE lpHead){ /* if(lpHeader == NULL){ throw NullPointerException; } */ int nLength = 0; int nTotal = 0; float fAverage; LPNODE lpWork = lpHead; while(lpWork != NULL){ nLength++; nTotal += lpWork->nData; lpWork = lpWork->pNext; } fAverage = nTotal / nLength; return fAverage;}int GetMin((LPNODE lpHead){ /* if(lpHeader == NULL){ throw NullPointerException; } */ int nMin = lpHead->nData; LPNODE lpWork = lpHead; while(lpWork != NULL){ if(nMin > lpWork->nData){ nMin = lpWork->nData; } lpWork = lpWork->pNext; } return nMin;}int GetMax((LPNODE lpHead){ /* if(lpHeader == NULL){ throw NullPointerException; } */ int nMax = lpHead->nData; LPNODE lpWork = lpHead; while(lpWork != NULL){ if(nMax < lpWork->nData){ nMax = lpWork->nData; } lpWork = lpWork->pNext; } return nMin;} Sort(LPNODE lpHead){ LPNODE lpWork = lpHead->pNext; while(lpWork != NULL){ if(lpHead->nData < lpWork->nData){ Switch(lpHead->nData, lpWork->nData); } lpWork = lpWork->pNext; } Sort(lpHead->pNext);}void Switch(int& a, int& b){ int c; c = a; a = b; b = c;} 第三:typedef struct _litem {long lData;struct _litem *left,*right;}litem;void CTcView::OnButton1() {long ls[]={1,4,2,78,5,68,9,10,45,67,21,52,7,0};//以零为结束litem pRoot;pRoot.lData = 0;pRoot.left = NULL;pRoot.right = NULL;int i = 0 ;while (ls[i] != 0 ) insert(&pRoot,ls[i++]); //插入数据并排序readdate(&pRoot);//读出数据排好的数据return;}void CTcView::insert(litem *pItem, long data){if(pItem->lData > data ) //小于当前的数放入左边if (pItem->left == NULL ) {pItem->left = new litem;pItem->left->left =NULL;pItem->left->right = NULL;pItem->left->lData = data;return ;}else insert(pItem->left , data);else if (pItem->right == NULL ) { ////大于当前的数放入右边pItem->right = new litem;pItem->right->left = NULL;pItem->right->right = NULL;pItem->right->lData = data;return ;}else insert(pItem->right , data);}void CTcView::readdate(litem *pItem){CString s;if(pItem == NULL ) return; readdate(pItem->left);s.Format("%d",pItem->lData ); //从小到大这里读取数据ml.AddString(s);//放入列表框readdate(pItem->right);} typedef struct _litem {long lData;struct _litem *left,*right;}litem;void CTcView::OnButton1() {long ls[]={1,4,2,78,5,68,9,10,45,67,21,52,7,0};//以零为结束litem pRoot;pRoot.lData = 0;pRoot.left = NULL;pRoot.right = NULL;int i = 0 ;while (ls[i] != 0 ) insert(&pRoot,ls[i++]); //插入数据并排序readdate(&pRoot);//读出数据排好的数据return;}void CTcView::insert(litem *pItem, long data){if(pItem->lData > data ) //小于当前的数放入左边if (pItem->left == NULL ) {pItem->left = new litem;pItem->left->left =NULL;pItem->left->right = NULL;pItem->left->lData = data;return ;}else insert(pItem->left , data);else if (pItem->right == NULL ) { ////大于当前的数放入右边pItem->right = new litem;pItem->right->left = NULL;pItem->right->right = NULL;pItem->right->lData = data;return ;}else insert(pItem->right , data);}void CTcView::readdate(litem *pItem){CString s;if(pItem == NULL ) return; readdate(pItem->left);//从小到大,如是是从大到小的话改为rights.Format("%d",pItem->lData ); //从这里读取数据ml.AddString(s);//放入列表框readdate(pItem->right);} typedef struct _NODE{ int nData; _NODE* pLeft; _NODE* pRight;} NODE,* LPNODE;void MidVisit(LPNODE lpRoot){ if(lpRoot == NULL){ return; } MidVisit(lpRoot->pLeft); Visit(lpRoot); MidVisit(lpRoot->pRight);}void Visit(LPNODE lpRoot){ cout<<lpRoot->nData;} typedef struct _NODE{ int nData; _NODE* pNext;} NODE,* LPNODE;LPNODE lpHead = NULL; //head of stackvoid CreateStack(LPNODE& lpHead){ LPNODE lpWork = NULL; do{ lpWork = new NODE; cout<<"Please input number:"; cin>>lpWork->nData; if(lpWork->nData != 0){ lpWork->pNext = lpHead; lpHead = lpWork; } }while(lpWork->nData != 0); delete lpWork; //The last node is excrescent, so delete it}int GetLength(LPNODE lpHead){ int nLength = 0; LPNODE lpWork = lpHead; while(lpWork != NULL){ nLength++; lpWork = lpWork->pNext; } return nLength;}float GetAverage(LPNODE lpHead){ /* if(lpHeader == NULL){ throw NullPointerException; } */ int nLength = 0; int nTotal = 0; float fAverage; LPNODE lpWork = lpHead; while(lpWork != NULL){ nLength++; nTotal += lpWork->nData; lpWork = lpWork->pNext; } fAverage = nTotal / nLength; return fAverage;}int GetMin((LPNODE lpHead){ /* if(lpHeader == NULL){ throw NullPointerException; } */ int nMin = lpHead->nData; LPNODE lpWork = lpHead; while(lpWork != NULL){ if(nMin > lpWork->nData){ nMin = lpWork->nData; } lpWork = lpWork->pNext; } return nMin;}int GetMax((LPNODE lpHead){ /* if(lpHeader == NULL){ throw NullPointerException; } */ int nMax = lpHead->nData; LPNODE lpWork = lpHead; while(lpWork != NULL){ if(nMax < lpWork->nData){ nMax = lpWork->nData; } lpWork = lpWork->pNext; } return nMin;} vc 2008 office 界面 设置背景颜色 为什么我的虚拟列表消息不响应,哪位帮我看看操作是否有问题? 请问像这样的效果是怎么做出来的啊? richedit20A 的问题 请教:如何根据ThreadID来判断线程依然存在 用C++怎么实现Hook超链接hyperlink的点击操作呢? 急急急急急,移动图形时应如何处理 如何调试ATL中调用的Com(这个Com是C#写的组件,然后用regasm创建的Com) 高分求救!!!怎么在自己写的控件里得到容器对象??? 想在调试中计算分配区的大小。 用GetDlgItemText时,怎么得到一个程序中的ID啊 动态连接库的函数导出问题
这四个全是数据结构中的小玩意:
1、堆栈
2、单链表
3、二叉树的生成和中序遍历
4、设置一个记录(学号、姓名、语文、数学、总分),对总分排序(如快速排序、堆排序等),然后就是个输出问题了。
查查《数据结构》这本书,不拘那一个版本,这些问题简单得很。但千万不要把几道作业题或是考试题和“命运”联系起来,这种玩意能当考题或是升职的话,那么这里所有的人都可以竞选美国总统了。
int nData;
_NODE* pNext;
} NODE,* LPNODE;LPNODE lpHead = NULL; //head of stackvoid CreateStack(LPNODE& lpHead)
{
LPNODE lpWork = NULL;
do{
lpWork = new NODE;
cout<<"Please input number:";
cin>>lpWork->nData;
if(lpWork->nData != 0){
lpWork->pNext = lpHead;
lpHead = lpWork;
}
}while(lpWork->nData != 0);
delete lpWork; //The last node is excrescent, so delete it
}int GetLength(LPNODE lpHead)
{
int nLength = 0;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
nLength++;
lpWork = lpWork->pNext;
}
return nLength;
}float GetAverage(LPNODE lpHead)
{
/*
if(lpHeader == NULL){
throw NullPointerException;
}
*/
int nLength = 0;
int nTotal = 0;
float fAverage;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
nLength++;
nTotal += lpWork->nData;
lpWork = lpWork->pNext;
}
fAverage = nTotal / nLength;
return fAverage;
}int GetMin((LPNODE lpHead)
{
/*
if(lpHeader == NULL){
throw NullPointerException;
}
*/
int nMin = lpHead->nData;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
if(nMin > lpWork->nData){
nMin = lpWork->nData;
}
lpWork = lpWork->pNext;
}
return nMin;
}int GetMax((LPNODE lpHead)
{
/*
if(lpHeader == NULL){
throw NullPointerException;
}
*/
int nMax = lpHead->nData;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
if(nMax < lpWork->nData){
nMax = lpWork->nData;
}
lpWork = lpWork->pNext;
}
return nMin;
}
{
LPNODE lpWork = lpHead->pNext;
while(lpWork != NULL){
if(lpHead->nData < lpWork->nData){
Switch(lpHead->nData, lpWork->nData);
}
lpWork = lpWork->pNext;
}
Sort(lpHead->pNext);
}void Switch(int& a, int& b)
{
int c;
c = a;
a = b;
b = c;
}
typedef struct _litem
{
long lData;
struct _litem *left,*right;
}litem;
void CTcView::OnButton1()
{
long ls[]={1,4,2,78,5,68,9,10,45,67,21,52,7,0};//以零为结束litem pRoot;
pRoot.lData = 0;
pRoot.left = NULL;
pRoot.right = NULL;
int i = 0 ;
while (ls[i] != 0 ) insert(&pRoot,ls[i++]); //插入数据并排序
readdate(&pRoot);//读出数据排好的数据
return;}void CTcView::insert(litem *pItem, long data)
{
if(pItem->lData > data ) //小于当前的数放入左边
if (pItem->left == NULL ) {
pItem->left = new litem;
pItem->left->left =NULL;
pItem->left->right = NULL;
pItem->left->lData = data;
return ;
}else insert(pItem->left , data);
else
if (pItem->right == NULL ) { ////大于当前的数放入右边
pItem->right = new litem;
pItem->right->left = NULL;
pItem->right->right = NULL;
pItem->right->lData = data;
return ;
}else insert(pItem->right , data);
}
void CTcView::readdate(litem *pItem)
{
CString s;
if(pItem == NULL ) return;
readdate(pItem->left);
s.Format("%d",pItem->lData ); //从小到大这里读取数据
ml.AddString(s);//放入列表框
readdate(pItem->right);}
{
long lData;
struct _litem *left,*right;
}litem;
void CTcView::OnButton1()
{
long ls[]={1,4,2,78,5,68,9,10,45,67,21,52,7,0};//以零为结束litem pRoot;
pRoot.lData = 0;
pRoot.left = NULL;
pRoot.right = NULL;
int i = 0 ;
while (ls[i] != 0 ) insert(&pRoot,ls[i++]); //插入数据并排序
readdate(&pRoot);//读出数据排好的数据
return;}void CTcView::insert(litem *pItem, long data)
{
if(pItem->lData > data ) //小于当前的数放入左边
if (pItem->left == NULL ) {
pItem->left = new litem;
pItem->left->left =NULL;
pItem->left->right = NULL;
pItem->left->lData = data;
return ;
}else insert(pItem->left , data);
else
if (pItem->right == NULL ) { ////大于当前的数放入右边
pItem->right = new litem;
pItem->right->left = NULL;
pItem->right->right = NULL;
pItem->right->lData = data;
return ;
}else insert(pItem->right , data);
}
void CTcView::readdate(litem *pItem)
{
CString s;
if(pItem == NULL ) return;
readdate(pItem->left);//从小到大,如是是从大到小的话改为right
s.Format("%d",pItem->lData ); //从这里读取数据
ml.AddString(s);//放入列表框
readdate(pItem->right);}
int nData;
_NODE* pLeft;
_NODE* pRight;
} NODE,* LPNODE;void MidVisit(LPNODE lpRoot)
{
if(lpRoot == NULL){
return;
}
MidVisit(lpRoot->pLeft);
Visit(lpRoot);
MidVisit(lpRoot->pRight);
}
void Visit(LPNODE lpRoot)
{
cout<<lpRoot->nData;
}
int nData;
_NODE* pNext;
} NODE,* LPNODE;LPNODE lpHead = NULL; //head of stackvoid CreateStack(LPNODE& lpHead)
{
LPNODE lpWork = NULL;
do{
lpWork = new NODE;
cout<<"Please input number:";
cin>>lpWork->nData;
if(lpWork->nData != 0){
lpWork->pNext = lpHead;
lpHead = lpWork;
}
}while(lpWork->nData != 0);
delete lpWork; //The last node is excrescent, so delete it
}int GetLength(LPNODE lpHead)
{
int nLength = 0;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
nLength++;
lpWork = lpWork->pNext;
}
return nLength;
}float GetAverage(LPNODE lpHead)
{
/*
if(lpHeader == NULL){
throw NullPointerException;
}
*/
int nLength = 0;
int nTotal = 0;
float fAverage;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
nLength++;
nTotal += lpWork->nData;
lpWork = lpWork->pNext;
}
fAverage = nTotal / nLength;
return fAverage;
}int GetMin((LPNODE lpHead)
{
/*
if(lpHeader == NULL){
throw NullPointerException;
}
*/
int nMin = lpHead->nData;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
if(nMin > lpWork->nData){
nMin = lpWork->nData;
}
lpWork = lpWork->pNext;
}
return nMin;
}int GetMax((LPNODE lpHead)
{
/*
if(lpHeader == NULL){
throw NullPointerException;
}
*/
int nMax = lpHead->nData;
LPNODE lpWork = lpHead;
while(lpWork != NULL){
if(nMax < lpWork->nData){
nMax = lpWork->nData;
}
lpWork = lpWork->pNext;
}
return nMin;
}