利用棧的資料結構,將二進位制轉換為十進位制
首先初始化建立乙個棧
然後通過迴圈語句輸入二進位制0/1,用』#」作為結束標誌。在輸入的過程,用push()將二進位制字串從高位到低位順序壓棧
輸入完畢,用stacklen()函式得到二進位制的長度,然後通過迴圈逐一從棧頂取數,用pop()函式實現,取出的字元存放在變數c中,c-48是為了得到字元對應的0/1值,0的asii碼為48,函式pow(x,y)是計算x的y次方,通過sum=sum+(c-48)*pow(2,i);
最終sum就是輸入的二進位制數對應的十進位制數,將其輸出到螢幕
/*利用棧的資料結構,將二進位制轉換為十進位制數*/
include "stdio.h"
#define stack_init_size 100;
#define stackincrement 10;
typedef char elemtype;
typedef struct
sqstack;
void initstack(sqstack *s)
void push(sqstack* s,elemtype e)
*(s->top)=e;
s->top++;
} void pop(sqstack*s ,elemtype*e)
int stacklen(sqstack s)
destroystack (sqstack *s)
int main()
getchar();
len=stacklen(s);
//得到棧中的元素個數
for(i=
0;iprintf("decimal is %d \n",sum);
destroystack(&s);
getche();
}
資料結構之棧結構
棧結構是一種filo first in last out 的批量資料儲存結構。其特點是先進後出,後來者居上 棧的基本屬性 棧記憶體 棧頂標記 棧的當前元素個數 萬金油屬性 size 棧的基本操作 萬金油的的操作 根據實現的不同將棧結構分為兩種 1.鏈式棧 2.陣列 利用有表頭鍊錶的頭插法來完成棧的功...
資料結構之棧
4.8.2 四則運算表示式求值 程式如下所示 include include include 定義結點型別 typedef struct node node,pnode 定義棧的抽象資料型別 typedef struct stack stack,pstack 函式宣告 對棧進行初始化的函式 void...
資料結構之棧
資料結構之棧 本文討論棧的陣列實現。棧需要有如下幾個屬性 棧的容量 capacity 棧頂指標 儲存棧元素的陣列 根據這幾個屬性可以定義乙個棧結構體 struct stackrecord 然後定義棧的操作,一般可以包含如下幾個 棧的建立 stack createstack int size 棧的銷毀...