【数据结构·C语言】请高手帮忙检查一个关于【实现顺序表的就地逆置的算法】是否正确
实现顺序表的就地逆置的算法。另:因为我是自学的数据结构,所以任何方面都有可能出问题,希望能够帮忙指出,不厌其详,谢谢!!!statusInverse_Sq(LinkLis...
实现顺序表的就地逆置的算法。
另:因为我是自学的数据结构,所以任何方面都有可能出问题,希望能够帮忙指出,不厌其详,谢谢!!!
status Inverse_Sq(LinkList &L){
if(L.length<=1) return OK;
for(i=0;i<=floor(L.length/2);i++)
L.elem[i]<-->L.elem[L.length-i-1];
return OK;
}//Inverse_Sq
顺便问一下,数据结构的算法题里是不是尽量少用比较高级的语句?比如<-->这样的?书上的答案里交换L.elem[i]和L.elem[L.length-i-1]的方法用的是新建一个ElemType X作为中间变量来交换赋值,这种方法和
直接使用<-->有什么区别吗? 展开
另:因为我是自学的数据结构,所以任何方面都有可能出问题,希望能够帮忙指出,不厌其详,谢谢!!!
status Inverse_Sq(LinkList &L){
if(L.length<=1) return OK;
for(i=0;i<=floor(L.length/2);i++)
L.elem[i]<-->L.elem[L.length-i-1];
return OK;
}//Inverse_Sq
顺便问一下,数据结构的算法题里是不是尽量少用比较高级的语句?比如<-->这样的?书上的答案里交换L.elem[i]和L.elem[L.length-i-1]的方法用的是新建一个ElemType X作为中间变量来交换赋值,这种方法和
直接使用<-->有什么区别吗? 展开
1个回答
展开全部
刚刚我回答了链式实现的倒置,这里是顺序实现的。上述代码是伪码。<-->这个是交换值的意思。floor也是自写函数,应该是去不大于参数的整数,如floor(3.2) = 3。 <-->实现如下:
int temp = L.elem[i];
L.elem[i] = L.elem[L.length-i-1];
L.elem[L.length-i-1] = temp;
你给的代码似乎是考研复习资料里面的
int temp = L.elem[i];
L.elem[i] = L.elem[L.length-i-1];
L.elem[L.length-i-1] = temp;
你给的代码似乎是考研复习资料里面的
追问
这个运算符在C语言里没有定义吗?是伪码语言?新的运算符在C语言里如何定义?
追答
在C中定义运算符倒是没见过,也许是因为我浅薄,如果稍微歧义一点,运算符是可以重载的, 当然这是C++的特性了。上面给出的肯定是伪码,而且很明确地说这种符号是无效的, 从这里也可以看出是伪码。 一般书籍上会这么写。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |