c++数据结构p2
#include <iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
//奇偶数调整问题
//整型数组,把偶数调整到数组的左边,把奇数调整到数组的右边
void AdjustArray(int arr[], int size) {
int* p = arr;
int* q = arr + size - 1;
//p->奇数
while (p < q) {
if ((*p & 0x1) == 0) {
break;
}
p++;
}
//q<-偶数
while (p < q) {
if ((*q & 0x1) == 1) {
break;
}
q--;
}
//p->奇数,q->偶数
if (p < q) {
int temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
int main() {
int arr[10] = { 0 };
srand(time(0));
for (int i = 0; i < 10; i++) {
arr[i] = rand() % 100;
}
for (int v : arr) {
cout << v << " ";
}
cout << endl;
AdjustArray(arr, 10);
for (int v : arr) {
cout << v << " ";
}
}
双指针逆序列代码
//逆序字符串
void Reverse(char arr[], int size) {//数组名会退化成指针,所以要传个数
char* p = arr;
char* q = arr + size - 1;
while (p < q) {
char ch = *p;
*p = *q;
*q = ch;
p++;
q--;
}
}
int main() {
char arr[] = "hello world";
Reverse(arr, strlen(arr));
cout << arr << endl;
return 0;
}