数据结构中的顺序表插入操作中if(i<1 || i>L->len+1)中 L-什么意思?还是L->是一个整体呢?部分代码如下:

int insert_Sq(SqList *L, int i, char c) //参数i:插入的位置(数组elem中的位置),参数c:要插入的值
{
if (i<1 || i>L->len+1) {
printf("\n插入位置不合理!");

如果不是一个整体,那么还可以两个>连续使用么?
我是一个C 语言和数据结构的初学者,希望大家给与帮助!

L是一个链表,在链表的宏定义typedef中,定义了很多链表的属性,比如说长度len,数据data,或者其他属性,而->的作用在C语言中就是代表某变量的某种属性

比如L->len+1就是取得链表L的长度属性,并且加1.追问

非常感谢!我还有一个问题,就是在定义链表的时候,例如void CreateListTail(LinkList *L, int a)这个语句中,那个链表L前加不加星号*一样么?我看的书上有的加,有的不加。

追答

如果加*表示传递进来的参数是一个存放链表地址的指针,不加*号,传递进来的是链表的首地址。

实现效果是差不多的,不过前者更具灵活性。可以随意改变链表头,后者链表头部分固定。不容易被修改。有些函数不需要被调用或者调用的少可能会采取后者。节省空间。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-04
i>L->len+1 这个不算两个> 你要记得—> 类似于“ . ” 的用法 如在结构体中 L->date 等于 L.date追问

谢谢了!再问您一个问题,就是在定义链表的时候,例如void CreateListTail(LinkList *L, int a)这个语句中,那个链表L前加不加星号*一样么?我看的书上有的加,有的不加。

追答

这个加 表示引用参数地址,这样可以节约分配空间,还可以直接修改链表内的值 不加表示只引用形参 ,重新创建链表 并不能修改到 实参的值

本回答被提问者和网友采纳
第2个回答  2012-08-05
C语言书上的后面章节自定义结构体,链表的都看看吧!你会明白的!
相似回答