任務2實現

2021-09-11 16:39:59 字數 3424 閱讀 2778

1.用陣列實現乙個棧,用了乙個多小時····不過還算順利,全部**如下

#includeusing namespace std;

templateclass arraystack

~arraystack()

void push(const t& elem);

void pop();

t& top() const;

int getsize() const;

bool empty() const;

void checkcapacity();

private:

t* list;

int capacity;

int size;

};templatevoid arraystack::push(const t& elem)

templatevoid arraystack::checkcapacity()

list = newlist; }}

templatevoid arraystack::pop()

templatet& arraystack::top() const

templateint arraystack::getsize() const

templatebool arraystack::empty() const

void main()

不過有小夥伴知道arraystackstack;這句話為什麼是char* 而不是 char呢

下一步用鍊錶實現乙個棧

2.儲存任意型別的棧,不過這個程式在指標上出現了問題,編譯能通過,由於在這道任務上花費了很長時間,這個有待後續解bug。有興趣的小夥伴可以幫忙解決一下這個問題。

#includeusing namespace std;

templateclass stacknode;

stacknode(t e)

};templateclass linkstack

;templatelinkstack::linkstack()

templatelinkstack::~linkstack()

delete ptr1;

delete buttom;

delete top;

ptr1 = ptr2 = buttom = top = null;

size = 0;

}templatevoid linkstack::pop()

stacknode*ptr = buttom;

while (ptr->next != top)

delete top;

top = ptr;

size--;

delete ptr;

ptr = null;

}templatevoid linkstack::push(const t& elem)

top->next = ptr;

top = ptr;

delete ptr;

ptr = null;

size++;

}templatebool linkstack::stackempty()const

templateint linkstack::getsize()const

templatet& linkstack::gettop() const

void main()

~browser()

void forward()*/

string m = currentpage->top();

currentpage2->push(m);

currentpage->pop();

cout << currentpage->top();

return;

} void back()

currentpage->push(currentpage2->top());

currentpage2->pop();

cout << currentpage->top();

}private:

stack* currentpage;

stack* currentpage2;

};class a

int i;

};void main()

關於佇列的編**的沒有時間再手打了,佇列的知識與棧還有鍊錶相似。

4.斐波那契數列

這個不難

#includeusing namespace std;

int solution(int num)

return result;

}void main()

求n的階乘就不打了,挺簡單的

5.求乙個資料集合的全排列

我選擇了字元型集合陣列作為引數

採用遞迴的思想,當cur = 0時,把字串中所有元素都換到第乙個元素中去,再組合上後面的所有可能,往後推導類似,**如下

#includeusing namespace std;

void swap(char *ptr1, char *ptr2)

void solution(char *data, int cur, int length)

cout << endl;

} for (int j = cur; j < length; j++)

}void main();

solution(data, 0, 5);

system("pause");

}

6.leetcode習題

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

很明顯這道題是運用棧的經典題目,使用匹配的規則,**如下

#define _scl_secure_no_warnings

#include#include#include#includeusing namespace std;

class solution

else

}return stack.size() == 0;

} bool isright(char a, char b)');

}};void main()");

string str2("{}(()");

solution sol;

int a = sol.isvalid(str1);

int b = sol.isvalid(str2);

cout << a

}

團隊任務2

團隊序號 5 團隊名稱 超能陸戰隊 團隊成員及分工 產品經理 孫永齊 ui設計師 劉利 隊長 軟體測試工程師 劉灃萱 軟體開發工程師 佘昊倫 林會洋 林小富,李金龍 專案名稱 學生就業管理系統 部落格撰寫人 林會洋 軟體開發工程師及測試 學號2018035107157 預計目標使用者數量 1000人...

2 閱讀任務

這個作業屬於哪個課程 軟工 2018級計算機4班 這個作業要求在 1 20210309 2 閱讀任務 這個作業的目標 有思考有智慧型的閱讀 學號20188521 問題1 如何有效解決因為分析問題 細節處理,照顧全域性,而進入的死迴圈?問題2 了解了軟體工程的基本概念和技術,成為乙個好的程式設計師還需...

任務安排 2

有 n 個任務,每個任務有一定的完成時間 t i 和費用係數 c i 每一批任務完成的時間為啟動時間 s 加上完成的總時間,費用這個任務為所在批次的完成時間乘上它的費用係數,求最小代價。比較容易得到乙個 n 3 的 dp 我們考慮暴力列舉任務和批次,令 f i j 表示前 i 個任務分成 j 批的最...