摘要:
题目:给定单链表,如果有环的话请返回从头结点进入环的第一个结点。答:#include "stdafx.h"#include <iostream>#include <fstream>#include <ctime>using namespace std;struct ListNode{ int m_nKey; ListNode* m_pNext;};//构造链表void CreateList(ListNode *&pHead, ListNode *&pFirstNode){ fstream fin("list.tx 阅读全文
摘要:
题目:输入一个字符串,打印出该字符串的所有子集。举例:输入字符串ab,则输出ab所有的子集{a b},{a},{b},{}。答:#include "stdafx.h"#include <iostream>using namespace std;//获取n个元素的子集void GetAllSubset(char *a, int *mask, int size, int c){ if (size == c) { cout<<"{ "; for (int i = 0; i < size; i++) { if (mask[i]... 阅读全文
摘要:
题目:输入一个字符串,打印该字符串的所有排列。举例:输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。答:#include "stdafx.h"#include <iostream>using namespace std;//交换两个数void swap(char &a, char &b){ char tmp = a; a= b; b = tmp;}//获取数组a的全排列void GetAllRange(char *a, int size, int c){ if (size == c) 阅读全文
摘要:
题目:用递归颠倒一个栈,例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。答:#include "stdafx.h"#include <iostream>#include <stack>using namespace std;void AddStackBottom(stack<int> &s, int top){ if (s.empty()) { s.push(top); } else { int tmp = s.top(); s.pop(); Ad... 阅读全文