中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

貪心Prim算法生成樹問題C實(shí)現(xiàn)代碼

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用
    #include <stdio.h>  
     #include <stdlib.h>   
    #define STACK_INIT_SIZE 20  
    #define STACKINCREMENT 10  
    typedef  char ElemType;  
    typedef struct{  
      
           ElemType *base;  
      
           ElemType *top;  
      
         int stacksize;  
      
     }sqStack;  
      
     /*初始化棧*/  
      
      void initStack(sqStack *s)  
      
       {  
      
          /*內(nèi)存中開辟一段連續(xù)空間作為?臻g,首地址賦值給s->base*/  
      
         s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType));  
      
          if(!s->base) exit(0);                    /*分配空間失敗*/  
      
           s->top = s->base;                    /*最開始,棧頂就是棧底*/  
      
          s->stacksize = STACK_INIT_SIZE;        /*最大容量為STACK_INIT_SIZE */  
      
       }  
      
     /*入棧操作,將e壓入棧中*/  
      
     void Push(sqStack *s, ElemType e){  
      
        if(s->top - s->base >= s->stacksize){  
      
           /*棧滿,追加空間*/  
      
          s->base = (ElemType *)realloc(s->base, (s->stacksize +  
      
         STACKINCREMENT)*sizeof(ElemType));  
      
         if(!s->base) exit(0);                                /*存儲分配失敗*/  
      
           s->top = s->base + s->stacksize;  
      
          s->stacksize = s->stacksize + STACKINCREMENT;        /*設(shè)置棧的最大容量*/  
      
          }  
      
          *(s->top) = e;                                    /*放入數(shù)據(jù)*/  
      
              s->top++;  
      
      }  
      
      /*出棧操作,用e將棧頂元素返回*/  
      
       void Pop(sqStack *s , ElemType *e){  
      
         if(s->top == s->base) return;  
      
        *e = *--(s->top);  
      
       }  
      
          
      
     /*計(jì)算堆棧s當(dāng)前的長度*/  
      
       int StackLen(sqStack s){  
      
          return (s.top - s.base) ;  
      
     }  
    int match(char e,char c)  
    {  
        if(e=='('&&c==')')  
            return 1;  
        if(e=='['&&c==']')  
            return 1;  
        return 0;  
    }  
    void main()  
    {  
        sqStack s;  
        char c,e;  
        initStack(&s);  
        scanf("%c",&c);  
        while(c!='#')  
        {  
            if(!StackLen(s))  
                Push(&s,c);  
            else  
            {  
                Pop(&s,&e);  
                if(!match(e,c))  
                {  
                    Push(&s,e);  
                    Push(&s,c);  
                }  
            }  
            scanf("%c",&c);  
        }  
        if(!StackLen(s))  
            printf("The brackets are matched\n");  
        else  
            printf("The brackets are not matched\n");  
      
    }  

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:讀取 android 設(shè)備的電池信息

下一篇:經(jīng)典算法5:用分治法實(shí)現(xiàn)元素選擇