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 批的最...