int ListLength(LinkNode *L)//计算给定一个由字符数组转化得到的单链表的长度 { /********BEGIN********/ /*********END*********/ }按照要求补充这个代码
时间: 2024-05-15 13:10:46 浏览: 85
这里提供一个计算单链表长度的代码实现:
```c++
int ListLength(LinkNode *L)
{
int len = 0;
LinkNode *p = L->next;
while (p != NULL) {
len++;
p = p->next;
}
return len;
}
```
其中,`LinkNode` 是单链表节点的结构体,包含一个数据域和一个指向下一个节点的指针域。`L` 是指向单链表头节点的指针,头节点不存储数据。
在代码实现中,我们用 `p` 来遍历单链表,每次遍历时将计数器 `len` 加一。当 `p` 指向 NULL(即链表尾部)时,遍历结束,返回计数器的值即可。
相关问题
int ListLength(SqList L) { /****在此下面完成代码***************/ return L.length; /***********************************/ }
引用:函数`CreateList(SqList *L,ElemType a[],int n)`中,如果去掉`&`,函数变为`void CreateList(SqList *L,ElemType a[],int n)`,意味着参数`L`不再是指针的引用,而是指针的值传递。这样做的话,在函数内部对`L`的修改不会影响到外部的指针。也就是说,无论在函数内部如何修改`L`的值,都不会改变外部指针的指向。因此,函数结束后,外部指针仍然指向原来的地址,不会指向新创建的顺序表。[^1]
引用:在函数参数`SqList *&L`中,`&`表示对`SqList`类型指针的引用。这样做的目的是为了在函数内部修改指针的指向,并将修改后的指针带回到函数外部。也就是说,通过引用传参,可以在函数内部创建新的顺序表,并将新创建的顺序表的地址赋给外部指针。这样,函数结束后,外部指针将指向新创建的顺序表。
下面是函数`int ListLength(SqList L)`的代码实现:
```c
int ListLength(SqList L)
{
return L.length;
}
```
这个函数的作用是返回顺序表的长度。由于参数`L`是按值传递,所以在函数内部对`L`的修改不会影响到外部的顺序表。函数直接返回顺序表的长度即可。
用单链表存储线性表,写出在带头结点的单链表中插入数据元素e作为单链表的第i个元素的算法和求单链表长度ListLength()的算法。 Typedef struct Lnode { ElemType data; //数据域 struct Lnode *next; //指针域 }Lnode, *LinkList; bool ListInsert(LinkList &L, int i, ElemType e){ int ListLength( LinkList L ){
好的,我明白了。以下是您提出的问题的答案:
插入数据元素e作为单链表的第i个元素的算法:
1. 首先,需要判断i的合法性,如果i<=0或者i>链表长度+1,则插入位置不合法,返回false。
2. 创建一个新节点s,并将e赋值给s的data域。
3. 找到第i-1个节点p,将s的next指向p的next节点。
4. 将p的next指向s节点。
5. 返回true表示插入成功。
具体实现如下:
```
bool ListInsert(LinkList &L, int i, ElemType e){
//判断插入位置是否合法
if(i<=0 || i>ListLength(L)+1){
return false;
}
//创建新节点s
Lnode *s = new Lnode;
s->data = e;
//找到第i-1个节点p
Lnode *p = L;
for(int j=1; j<i; j++){
p = p->next;
}
//插入节点s
s->next = p->next;
p->next = s;
//插入成功,返回true
return true;
}
```
求单链表长度ListLength()的算法:
遍历链表,统计节点个数即可。
具体实现如下:
```
int ListLength(LinkList L){
int count = 0;
Lnode *p = L->next;
while(p){
count++;
p = p->next;
}
return count;
}
```
阅读全文
相关推荐
















