1028.cpp

来自「计算表达式的值。直接输入表达式」· C++ 代码 · 共 172 行

CPP
172
字号
void UpDate(struct Node *Temp)

{

struct Node * Tempa, * Tempc, * Pointer;

struct LeafNode *p,*q,*b;

unsigned char Letter;

while(Temp!=Root)

{

if(Temp->Weight)

{

P=Weight;

while(p->Next->CharNode->Weight !=Temp->Weight)

p=p->Next;

if(Temp->Front!=NULL)

{

Tempa=Temp;

while(Temp->Front !=NULL)

Temp=Temp->Front;

if(Temp==Tempa->Parent)

{

Tempa->Weight++;

Tempa->After=Tempa->Front=NULL;

Temp->After=NULL;

InsertWeight(Tempa);

}

else

{

Pointer=Temp->LeftChild;

if(Pointer !=NULL)

Pointer->Parent=Tempa;

Temp->LeftChild=Tempa->LeftChild;

if(Temp->LeftChild !=NULL)

Temp->LeftChild->Parent=Temp;

Tempa->LeftChild=Pointer;

Pointer=Temp->RightChild;

if(Pointer !=NULL)

Pointer->Parent=Tempa;

Temp->RightChild=Tempa->RightChild;

if(Temp->RightChild !=NULL)

Temp->RightChild->Parent=Temp;

Tempa->RightChild=Pointer;

Letter=Temp->Letter;

Temp->Letter=Tempa->Letter;

Tempa->Letter=Letter;

if((Tempa->LeftChild==NULL)&&(Tempa->RightChild==NULL)

{

b=leaf;

while(b!=NULL)

{

if(b->CharNode==Temp)

{

b->CharNode=Tempa;
break;

}

else b=b->Next;

}

}

if((Temp->LeftChild==NULL)&&(Temp->RightChild++NULL))

{

b=Leaf;

while(b!=NULL)

{

if(b->CharNode==Tempa)

{

b->CharNode=Temp;

break;

}

else b=b->Next;

}

}

}

}

p->Next->CharNode=Temp->After;

if(Temp->After==NULL)

{

q=p->Next;

p->Next=q->Next;

free(q);

}

else Temp->After->Front=NULL;

}

Temp->Weight++;

Temp->After=Temp->Front=NULL;

InsertWeight(Temp);

Temp=Temp->Parent;

}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?