棧的各種操作

2021-09-26 04:20:20 字數 1410 閱讀 8022

一.設定相應的結構體

typedef int value;

typedef structsqstack;

注意stacksize是指相應的當前的棧的空間。

二.建立棧的空間

int initstack(sqstack &s)      //建立乙個新的棧 

else

return ok;

}

建立空間時可以是將s.base == s.top設定為0或者可以不設定。

三.判斷棧是否為空

int ifempty(sqstack s)       //判斷此棧是否為空 

else

return ok;

}

注意:此處有兩種判斷方法

1.看s.top與s.base是否等於null。

2.判斷s.top與s.base是否相等。

四.棧的輸入與輸出

int push(sqstack &s,value t) //往建立好的棧當中輸入相應的數字

s.top = s.base + s.stacksize;

s.stacksize = s.stacksize + stack; //擴充後的空間

} *s.top++ = t;

return ok;

}int input(sqstack s)

{ int i=0;

int n=0;

value j=0;

printf("請輸入想要輸入的個數(每個數字用回車隔開):");

scanf("%d", &n);

for(i=0; i此處在輸入時要考慮是否有足夠的儲存空間,若是沒有足夠的空間那麼就需要realloc再次分配一些空間。

*s.top++ = t(s.top是在棧最上方元素的上一位其先要在此位置輸入相應的數字,再將s.top所指的向上移一位)。

對於棧的輸出來說其在輸出時需要注意s.base是否為null。

(此處需注意的是由於棧頂指標的位置問題,在輸出元素時需要將棧頂指標先向下移一位再進行輸出)。

六.棧基本知識

1.棧是先進後出的結構。

2.建立棧的空間之前要先巨集定義相應的空間。

3.棧頂指標始終在棧頂元素的下乙個位置上。

4.判斷棧是否為空的方法:一.判斷其棧頭與棧尾指標是否等於null(此處要先看是否在建立空間時設定了null)。

二.判斷s.top與s.base是否相等。

5.進棧與出棧時要注意空間大小以及相應指標的位置。

用鏈式結構表示棧的各種操作

include include define error 0 define ok 1 typedef int elemtype typedef struct stacknodestacknode,linkstack int stackinit linkstack s int stackpush li...

Java io的各種操作

位元組流 字元流 輸入流 inputstream reader 輸出流outputstream writer fileinputstream 讀取檔案位元組流 read 方法 fileoutputstream 寫入檔案位元組流 write 方法 filereader 讀取檔案字元流 要用buffer...

url 的各種操作

最近做公司專案時遇到乙個問題。因為文字 字串 中含有鏈結 url 需要對其進行過濾 替換 擷取等操作。本人在網上找了好久也沒發現比較靠譜和合適的。就自己整理了一些方法。雖然 簡單但僅為記錄方便以後復用。如下 注 url的正規表示式為 將url替換為空格 param str return public...