线性表可以用链表来存储,请用自然语言描述一算法,实现链表中元素个数的计算

线性表可以用链表来存储,请用自然语言描述一算法,实现链表中元素个数的计算

自然语言?就是描述算法的原理么?

先给题主上源代码吧

/* 单链表数据结构 */
typedef struct lNode {
elemType data;
struct lNode *next;
} lNode, *linkList;

/* 获取单链表长度 */
/* 初始条件:单链表L已存在。操作结果:返回L中数据元素个数 */
int listLength (linkList L) {
int i = 0;
linkList p = L->next; /* p指向第一个结点 */

while (p) { /* 没到表尾 */
     i++;
     p=p->next;
}

return i;
}

    将链表头结点地址作为参数

    声明链表结点指针并指向链表第一个节点

    遍历链表并通过整型变量计数

    返回结点个数

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

...的循环单链表L中,写出计算线性表元素个数的算法。
include<stdio.h> include<stdlib.h> typedef struct node{ int data;struct node *next;}listnode,*linklist;linklist creatlist(int n,linklist R){ listnode *p,*q;int i;R=q=(listnode*)malloc(sizeof(listnode));for(i=1;i<n;i++){ p=(listnode*)malloc(sizeof(listnode));q->d...

...的循环单链表L中,写出计算线性表元素个数的算法
printf("链表长度为:%d\\n",j);return 1;}

什么是链式存储结构?用自然语言说明向单向链表中特定位置插入数据的过程...
线性表的链式储存结构是用一组地址任意的储存单元(可以连续,也可不连续)来依次储存线性表种的各个数据元素。

试写一算法在带头结点的单链表结构上实现线性表操作Length(L)。下面各...
intListLength_L(LinkList &L){int i=0;\/\/i存储链表长度,初始为0LinkList p=L;\/\/p为链表的指针,初始为头指针,指向头结点if(p) p=p-next;\/\/如果p指向的头结点不为空,p指向带数据的第一个结点while(p){\/\/如果p非空,i长度加1,且指向下一个结点p=p->next;i++;} return i;\/\/...

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

线性表和链表有什么区别啊?
一、存储方式不同:线性表使用一块连续的内存空间来存储元素,可以通过下标直接访问元素,例如数组就是一种线性表的实现。而链表则是使用分散的内存空间来存储元素,每个节点都包含一个指向下一个节点的指针,通过遍历指针链实现元素的访问。二、插入和删除的效率不同:由于线性表使用连续的内存空间存储元素...

...并以单链表作存储结构。试编写一个高效算法,删除表中所有
下面是用类C语言描述的算法 希望能对你有所帮助 呵呵 LinkedList LinkedListClear(LInkedList L){\/\/清空单链表,并释放节点所占空间 p=L->next;while(p!=NULL){ q=p->next;free(p);p=q;} L->next=NULL;return L;}

已知长度为n的线性表A采用链表存储结构,请写一算法,找出该线性表中值...
\/\/查找最小值 status findminlist(sqlist &l){ int i=0,min=0;min=l.elem[0];for(i=1;i<l.length;i++){ if(l.elem[i]<min){ min=l.elem[i];} } cout<<"链表最小值为:"<<min<<endl;return 1;}

...题:用单链表作存储结构,编写一个实现线性表中元素逆置的算法_百度知 ...
{ int data;struct node *next;}sqlist;void disp1(sqlist *lq){ sqlist *t=lq;while(t!=NULL){printf("%d ",t->data); t=t->next; } } void disp2(sqlist *lq){ sqlist *t=lq;while(t->next!=NULL){printf("%d ",t->data); t=t->next; } } void main(){ sqlist...

[线性表 链表实验报告]链表线性表
1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。2.建立一个带表头结点的单链表(前插入法和尾插入法都可以)。3.编写单链表输出算法。4.依次插入3,21,15三个数,分别插入在第4,6和12位置,每插入一次都要输出一次单链表。5.删除第5,第3和第12个位置上的元素,每删除...

相似回答