91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: C/C++
  • 標簽: 重言式??

資源簡介

實現重言式判別,編程語言為c++語言 數據結構上機實驗

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

typedef?struct?DutyElement
{
????char?data;
????int?duty;
}DutyElement;

DutyElement?DutyArray[100];??????????//定義加權數組

typedef?struct?BiTNode
{
????char?data;
????struct?BiTNode?*lchild?*rchild;
}BiTNode?*BiTree;

?void?InitDutyArray(char?*s?int?n)?????????//根據輸入的序列初始化加權數組
?{
????int?i?j;
????for?(i?=?0;?i?????{
????????DutyArray[i].data?=?s[i];
????????switch?(DutyArray[i].data)??????????//分別賦權值
?????????{
????????case?‘~‘:
????????????DutyArray[i].duty?=?3;?break;
????????case?‘&‘:
????????????DutyArray[i].duty?=?2;?break;
????????case?‘|‘:
????????????DutyArray[i].duty?=?1;?break;
????????default:
????????????DutyArray[i].duty?=?0;?break;
????????}
????}
????for?(i?=?0;?i?????{
????????if?(DutyArray[i].data?==?‘(‘)????????//是左括號的話則對運算符進行加權操作
?????????{
????????????for?(j?=?i;?j?????????????{
????????????????if?(DutyArray[j].duty?!=?0)
????????????????????DutyArray[j].duty?+=?5;
????????????}
????????}
????????else
????????{
????????????if?(DutyArray[i].data?==?‘)‘)??????????//右括號的話對運算符進行減權操作
?????????????{
????????????????for?(j?=?i;?j?????????????????{
????????????????????if?(DutyArray[j].duty?!=?0)
????????????????????????DutyArray[j].duty?-=?5;
????????????????}
????????????}
????????}
????}
}

?int?SearchMinDutyOperator(int?a?int?b)??????????//尋找權值最小的運算符,即為二叉樹的根節點
?{
????int?i?n?=?a?duty?=?1000;
????for?(i?=?a;?i?????{
????????if?(DutyArray[i].duty?>?0?&&?DutyArray[i].duty?????????{
????????????n?=?i;
????????????duty?=?DutyArray[i].duty;
????????}
????}
????return?n;
}

?int?ParenthesesCloesed(int?a?int?b)????????//判斷序列是否在最外層有一對括號
?{
????int?i?n?=?0;
????for?(i?=?a;?i?<=?b;?i++)
????{
????????if?(DutyArray[i].data?==?‘(‘)
????????????n++;
????????if?(DutyArray[i].data?==?‘)‘)
????????????n--;
????????if?(n?==?0)
????????????break;
????}
????if?(i?==?b)
????????return?1;
????else
????????return?0;
}

BiTree?Create(int?a?int?b)????????????????//根據加權數組創建二叉樹
?{
????BiTree?p;
????if?(DutyArray[a].data?==?‘(‘?&&?DutyArray[b].data?==?‘)‘?&&?ParenthesesCloesed(a?b)?==?1)??//去括號
????{
????????a?+=?1;
????????b?-=?1;
????}
????if?(a?>?b)
????????p?=?NULL;
????else
????{
????????if?(a?==?b)
????????{
????????????p?=?(BiTNode?*)malloc(sizeof(BiTNode));
????????????p->data?=?DutyArray[a].data;
????????????p->lchild?=?NULL;
????????????p->rchild?=?NULL;
????????}
????????else
????????{
????????????int?n;
????????????n?=?SearchMinDutyOperator(a?b);
????????????p?=?(BiTNode?*)malloc(sizeof(BiTNode));
????????????p->data?=?DutyArray[n].data;
????????????p->lchild?=?Create(a?n?-?1);
????????????p->rchild?=?Create(n?+?1?b);
????????}
????}
????return?p;
}

void?AssignValue(BiTree?T?char?letter?char?binary)??????//遞歸為對應的字母賦二進制字符
{
????if?(T)
????{
????????if?(T->data?==?letter)
????????????T->da

評論

共有 條評論