- 博客(8)
- 收藏
- 关注
原创 两个栈模拟队列,两个队列模拟栈
//栈 -> 后进先出 //队列 -> 先进先出 //1.两个栈 模拟实现一个队列 template class MyQueue { public: void Push(T t) //插入不用判断,直接插入s1 { s1.push(t); } T& Front() //取队头数据 { if (s2.size() != 0)
2017-07-20 23:17:43 257
原创 链表所有的相关操作(合并,查找,逆制,判环,相交)
1.合并两个有序链表,合并以后的链表依旧有序。 #pragma once typedef struct ListNode { int _data; ListNode* _next; }Node; void Display(Node* head) //非递归打印 { while (head) { cout _data << " "; head = head->_next
2017-07-20 22:54:57 345
原创 堆排序的二三事
1.可以用做外排序。 比如查找N个数据(假设数据量内存放不下)中最大的前K个, 取这N个数据中的前K个建一个小堆, 因为是小堆,所以,堆顶数据必然是最小的。 此时,读取剩余数据,只要是大于堆顶数据,就交换堆顶数据和读到的数据。 然后调整堆,让堆顶继续是最小数据。 (永远保证堆里面保存着读之前所有数据中最大的前K个) 一直读取,直到所有数据读结束。 此时堆里就保存着这N个数据中最大的前
2017-07-18 02:20:50 256
原创 10-29
1.将数组A中的内容和数组B中的内容进行交换。(数组一样大) #include #include int main() { int i,j,k; int arr1[5]; int arr2[5]; int sz = sizeof(arr1) / sizeof(arr1[0]); printf("arr1= "); for (i = 0; i < sz; i++) {
2016-11-01 00:46:10 322
原创 10-28
1. 给定两个整形变量的值,将两个值的内容进行交换。 #include int main() { int a=1,b=2; int tmp=0; printf("a=%d b=%d\n",a,b); tmp=a; a=b; b=tmp; printf("a=%d b=%d\n",a,b); return 0; } 2. 不允许创建临时变量,交换两个数的内容(附加题)
2016-11-01 00:45:21 209
原创 10-26
1.打印100~200之间的素数 #include int main() { int i, j; for (j = 100; j <= 200; ++j) { for (i = 2; i <= j / 2; ++i) { if (j%i == 0) break; } if(i>j/2) printf("%d\n", j);
2016-11-01 00:44:18 228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人