C语言 统计线性表中元素的个数,int ListLength(struct Sqlist MyLi

统计线性表中元素的个数,int ListLength(struct Sqlist MyList),函数的返回值为线性表的元素个数。

线性表可以直接用malloc申请连续空间,按数组保存。但这样不方便后期增删。
所以,建议使用链表来实现。
下面代码就是用链表实现线性表。
其中initList函数是生成了一个10节点的单向链表作为线性表。
ListLength就是题目要的函数。(函数中顺带打印了链表内容,你不想要显示链表内容,就删掉printf语句)。

#include<stdio.h>
#include<malloc.h>
struct Sqlist
{
    int num;
    struct Sqlist *next;
};
struct Sqlist *initList();//初始化一个线性链表
int ListLength(struct Sqlist MyList);
int main()
{
    struct Sqlist *mylist;
    mylist=initList();
    printf("\n线性表中元素个数为:%d\n",ListLength(*mylist));
    return 0;
}
int ListLength(struct Sqlist MyList)
{
    int cnt=0;
    struct Sqlist *headList=&MyList;
    printf("生成的线性表各元素值为:");
    while(headList)
    {
        printf("%d ",headList->num);
        cnt++;
        headList=headList->next;
    }
    return cnt;
}

struct Sqlist *initList()
{
    int i;
    struct Sqlist *newList=NULL,*firstList=NULL,*lastList=NULL;
    for(i=1;i<=10;i++)
    {
        newList=(struct Sqlist *)malloc(sizeof(struct Sqlist));
        if(!newList)
            return NULL;
        newList->num=i;
        newList->next=NULL;
        if(!firstList)
            firstList=newList;
        else
            lastList->next=newList;
        lastList=newList;
    }
    return firstList;
};

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言 统计线性表中元素的个数,int ListLength(struct Sqlist MyLi
include<stdio.h>#include<malloc.h>struct Sqlist{ int num; struct Sqlist *next;};struct Sqlist *initList();\/\/初始化一个线性链表int ListLength(struct Sqlist MyList);int main(){ struct Sqlist *mylist; mylist=initList(); printf("\\n线性表中元素个数为:%d\\...

怎么用C++建立一个含7个数据元素的顺序表L={21,23,14,5,56,17,31}...
int SqList::CreateList(void){ int i=0;cout<<"输入要存储的内容:("<<listsize<<")个:";for(i=0;i<listsize;i++)cin>>elem[i];length=listsize;\/\/表长度 return OK;} \/\/end \/\/获取当前线性表信息 void SqList::ListInfo(){ cout<<"当前线性表内容:"<<endl;for(int i=0;i...

c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添...
\/\/按姓名的长度进行排序 void SortLinkNameLength(linkADT link) { nodeADT pHead,pRear,p,tp;if (!link) return;

相似回答