棧 兩種儲存方式 進製數字相互之間轉化

2021-10-13 22:57:16 字數 2714 閱讀 7280

題目:

將十進位制數n轉換成為x進製數,可以使用輾轉相除法。

(1)將n除以x,取其餘數;

(2)判斷商是否為0,如果為零,結束程式;否則,將商送n,轉(1)繼續執行

順序棧:

#define stacksize 100

#include

#include

#include

typedef

int datatype;

typedef

struct

seqstack;

//棧的初始化

void

initstack

(seqstack *s)

//判斷棧是否為空

intstackempty

(seqstack s)

else

}//取棧頂元素

intgettop

(seqstack s,datatype *e)

else

}//進棧操作

intpushstack

(seqstack *s,datatype e)

else

}//出棧操作

intpopstack

(seqstack *s,datatype *e)

else

}//返回棧的長度

intstatcklength

(seqstack s)

//清空棧

void

clearstack

(seqstack *s)

void

coversion

(int n)

printf

("請輸入十進位制轉換成八進位制數字:");

while(!

stackempty

(s))

printf

("\n");

}void

coversion1

(int n)

printf

("請輸入十進位制轉換成二進位制數字:");

鏈棧:

#include

#include

#include

typedef

int datatype;

#define listsize 100

//鏈棧儲存型別

typedef

struct nodelstacknode,

*linkstack;

//初始化鏈棧

void

initstack

(linkstack *top)

(*top)

->next=

null;}

//判斷棧是否為空

intstackempty

(linkstack top)

else

}//進棧操作

intpushstack

(linkstack top,datatype e)

p->data=e;

p->next=top-

>next;

top-

>next=p;

return1;

}//出棧操作

intpopstack

(linkstack top,datatype *e)

top-

>next=p-

>next;

*e=p-

>data;

free

(p);

return1;

}//取棧頂元素

intgettop

(linkstack top,datatype *e)

*e=p-

>data;

return1;

}//求表長操作

intstacklength

(linkstack top)

return count;

}//銷毀棧

void

destroystack

(linkstack top)

}void

coversion

(int n)

printf

("請輸入十進位制轉換成八進位制數字:");

while(!

stackempty

(top)

)printf

("\n");

}void

coversion1

(int n)

printf

("請輸入十進位制轉換成二進位制數字:");

棧的兩種實現方式

一 陣列實現棧 首先需要定義乙個陣列來儲存棧中的資料,並定義乙個變數來記錄陣列中儲存元素的個數,編寫乙個構造方法來構造乙個長度為十得陣列。先頂i有乙個陣列來儲存棧中的元素 private object array 定義陣列中儲存元素的個數 private int size 構造後乙個長度與為10的陣...

數字dp的兩種實現方式

一.遞推 學的第一種方法就是這個,但是個人認為這種方式在某些題上比較難實現,比如 blance number hdu 3709 這道題本蒟蒻沒想出怎麼用遞推預處理,反而是記憶化搜尋的方式更容易懂.以hdu 2089為例,本題的遞推還是比較好實現的.二.記憶化搜尋 這種方法就比較爛大街了,基本每道數字...

Oracle測試儲存過程兩種方式

在初學oracle時,寫了乙個儲存過程,名稱是 proc get bill,三個引數,第1,3是in引數,第2是out引數,寫完之後,想測一下,結果發現網上有多種方式 其重要是下面這兩種,只是寫法不同而已 剛開始把兩種變數定義方式搞錯了,一直執行不過,經慢慢嘗試,得到了下面兩種寫法,希望像我這樣初學...