我正在编写链表快速排序。
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'或'属性'
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]'高'未声明(首次使用此功能)
[注意]每个未声明的标识符仅针对它出现的每个函数报告一次 [错误]' - &gt;'的无效类型参数(有'NODE')
[错误]二进制操作数无效!=('NODE'和'int')
[错误]'temp'notclared(首次使用此功能)
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]' - &gt;'的无效类型参数(有'NODE')
[错误]'quick'
的参数2的不兼容类型[注意]预期'NODE'但参数类型为'struct NODE *'
错误原因?
答案 0 :(得分:1)
int pivot,temp
之后
2。low -> Next =high
应该low -> Next ==high
你应该使用==
,High
void quick(NODE low,NODE High)
,但您使用high
,则应更改NODE
的类型是struct,你应该使用NODE.parameter
,如果你想使用->
,你应该使用struct指针,所以你需要定义{{1 }}