为了账号安全,请及时绑定邮箱和手机立即绑定

c语言 数据结构 顺序存储结构线性表初始化问题

c语言 数据结构 顺序存储结构线性表初始化问题

问题是void InitList(Sqlist *L) ,这里只是设置了len不就相当于什么都没做吗,传递结点地址怎么就初始化成结点数组,即链表了?#include <stdio.h>#include <stdlib.h>#define OK 1#define NO 0#define MAXSIZE 20typedef int bool;typedef int ElemType;int nn=0;void InitList(Sqlist *L)  ///传递结点地址而已,怎么会初始链表{    L->len=0;}ElemType FindElem(Sqlist L,int n){    ElemType e;    if(n>L.len)        return 0;    return L.data[n-1];}bool ListInsert(Sqlist *L,int n,ElemType data){    int i;    if(L->len==MAXSIZE||n>L->len+1)        return 0;    for(i=L->len+1; i>=n; i--)    {        if(L->len==MAXSIZE-1)            break;        L->data[i]=L->data[i-1];    }    L->data[n-1]=++nn;    L->len++;    return 1;}void main(){    Sqlist L;    InitList(&L);   ///这怎么就把结点初始化为链表了?    int i;    ElemType temp;    for(i=1; i<=5; i++)    {        if(!ListInsert(&L,i,i))            printf("no");    }        ShowList(L);    }
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

InitList 初始化一个空“链表”(数组),len 表示的是链表中有效节点的数量。有点类似栈指针的意思

查看完整回答
反对 回复 2018-10-29
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

朋友,这里初始化的应该是顺序表,因为在定义结构时有顺序表长度这个关键属性,所以初始化顺序表即将其长度初始为零。
这里没有链表的事情,链表和顺序表两回事
线性表的存储结构分为顺序存储(顺序表)和链式存储(链表)

查看完整回答
反对 回复 2018-10-29
  • 2 回答
  • 0 关注
  • 1274 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信