【发布时间】:2018-11-06 01:12:31
【问题描述】:
我正在写链表快速排序。
void quick(NODE low,NODE High){
NODE stan=low, serch=NULL;
int pivot,temp
if(low==end || low -> Next =high || low == high){return;}
serch=stan -> Next;
pivot= stan -> data;
while(serch != high){
if(serch -> data <= pivot){
if(serch != pivot){
temp= serch -> data;
serch -> data =stan -> next ->data;
stan -> next ->data=temp;
}
stan = stan -> Next;
}
}
quick(low, stan);
quick(stan -> next,end);
}
但是
[错误] 初始化器无效
[错误] 在 'if' 之前需要 '='、','、';'、'asm' 或 'attribute'
[错误] '->' 的类型参数无效(有 'NODE')
[错误] '->' 的类型参数无效(有 'NODE')
[Error] 'high' undeclared(首次在此函数中使用)
[注意] 每个未声明的标识符对于它出现的每个函数只报告一次 [错误] '->' 的类型参数无效(有 'NODE')
[错误] 二进制操作数无效!=(有 'NODE' 和 'int')
[Error] 'temp' undeclared(在此函数中首次使用)
[错误] '->' 的类型参数无效(有 'NODE')
[错误] '->' 的类型参数无效(有 'NODE')
[错误] '->' 的类型参数无效(有 'NODE')
[错误] '->' 的类型参数无效(有 'NODE')
[错误] '->' 的类型参数无效(有 'NODE')
[错误] '->' 的类型参数无效(有 'NODE')
[错误] 'quick' 的参数 2 的类型不兼容
[注意] 预期为 'NODE' 但参数类型为 'struct NODE *'
为什么出错?
【问题讨论】:
-
你能告诉我你使用的是哪个编译器吗?
-
C 区分大小写。另外,
NODE是什么? -
你也应该向我们展示你的类型
-
与快速排序数组相比,您无法以相同的复杂度快速排序链表,因为在链表中索引元素的时间是 O(n)
-
缺失;可变温度后
标签: c linked-list quicksort