資料結構與演算法(10) 棧習題一

2021-07-31 04:36:03 字數 1490 閱讀 4272

題目:回文字串判斷,就是乙個字串,從左到右讀和從右到左讀是完全一樣的

例如:abcdedcba就是回文

/**

* 字串回文判斷

*@param str 需要判斷的字串

*@return true 是回文 false 不是回文

*/public

static

boolean

ispalindrome(string str)

// 如果字元陣列大小為奇數

if (inputchar.length % 2 != 0)

// 對比字元陣列後半部分字元和棧中字元

for (int i = mid; i < inputchar.length; i++)

}return

true;

}

測試**:

public

static

void

main(string args) else

}

題目:設計乙個可以把棧中元素按照公升序排列的排序演算法

/**

* 設計乙個可以把棧中元素按照公升序排列的排序演算法

*@param sourcestack 需要排序的原棧

*@return 排序後的棧

*/public

static linkedliststacksort(linkedliststacksourcestack)

resultstack.push(temp);

}return resultstack;

}

測試**:

public

static

void

main(string args)

}

題目:給定乙個棧,如何只使用棧操作(push和pop)逆置棧中的內容

// 使用到遞迴呼叫

public class stackreversal

anytype temp =

stack

.pop();

reversestack(stack);

insertatbottom(stack, temp);

}public

void insertatbottom(linkedliststack

stack, anytype data)

anytype temp =

stack

.pop();

insertatbottom(stack, data);

stack

.push(temp);

}}

測試**:

public

static

void main(string args)

}

演算法與資料結構 習題1 0

一 選擇題 在計算機中,演算法是指 a.查詢方法 b.加工方法 c.解題方 而完整的描述 d.排序方法 2.下列敘述中正確的是 a 演算法的效率只與問題的規模有關,而與資料的儲存結構無關 b 演算法的時間複雜度是指執行演算法所需要的計算工作量 c 資料的邏輯結構與儲存結構是一一對應的 d 演算法的時...

資料結構與演算法(11) 棧習題二

題目 判定字串中開閉分隔符是否匹配 思路 1.分解字串成字元陣列,並建立乙個棧 2.如果讀取的字元不是開閉分隔符,直接忽略 如果讀取的字元是開分隔符則壓棧 如果讀取的字元是閉分隔符,且棧不為空,棧頂元素出棧,否則提示匹配錯誤 3.如果出棧的開分隔符與讀取的閉分隔符不匹配,提示匹配錯誤 4.字串處理完...

資料結構與演算法《棧》

概念 棧 stack 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使...