是一个链表按照数字的奇偶分为两个链表
这是代码:
//将单链表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的单链表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果
void listSeparate(node** L)
{
node* p;
node* L1, * L2, * M, * N, * u, * t;
p = (*L)->next;
L1 = (node*)malloc(sizeof(node));
L2 = (node*)malloc(sizeof(node));
M = L1;
N = L2;
initialList(&L1);
initialList(&L2);
while (p != NULL)
{
if (p->data % 2 == 0)
{
u = (node*)malloc(sizeof(node));
u->data = p->data;
u->next = M->next;
M->next = u;
M = u;
}
else
{
t = (node*)malloc(sizeof(node));
t->data = p->data;
t->next = L2->next;
L2->next = t;
L2 = t;
}
p = p->next;
}
print(L);
cout << "偶数项L1为:" << endl;
print(&L1);
cout<<"奇数项L2为:"<
这是出现的问题
27到29行,L2改成N啊,L2都在循环中移动到链表尾了,能输出啥啊
int cal(int n) {
int ret = 0;
int i = 1;
for (; i < n; ++i) { //第一段 这个函数的复杂度是O(n)
ret = ret + f(i);
}
}
int f(int n) {
int sum = 0;
int i = 1;
for (; i < n; ++i) {//第段段 这函数的复杂度是O(n),合起来就是O(n^2)
sum = sum + i;
}
return sum;
}
这里单看第一段函数的复杂度是O(n),单看第二段函数的复杂度也是O(n),有因为嵌套了,合在一起就是O(n^2)了。