数据结构算法设计: 请设计一个算法,统计一个循环单链表L中的结点个数。

算法设计:
请设计一个算法,统计一个循环单链表L中的结点个数。

3个回答

int n = 0;
while (L != NULL) { L = L->next; n++; }

/* counts the nodes in the list /
int fuc(struct list
head)
{
void *tmp;
int i;
if(!head)
return -1;

for(i = 1, tmp = head, head = head->next; head != tmp; head = head->next)
        i++;
return i;

}

aa422656045
Roi_Yu 正解
接近 4 年之前 回复

count=0;
顺序遍历链表,遍历到一个节点count++

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据结构——统计二叉树的结点个数
统计二叉树的结点个数 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct Node{ //二叉树的链式存储结点 char data; struct Node *Lchild; struct Node *Rchild; }BiTNode,*BiTree...
一个循环单链表结点的简单问题
题目:非空的循环单链表结点(由p所指向)满足_______rn书上的答案是:p-->link==Nullrnrn我的问题是:rn我想它应该是:“p-->link==first”,因为它的尾指针循环指向了它的最前面,请会的人帮助。rnrn
算法与数据结构-循环单链表
C/C++算法与数据结构:循环单链表的实现代码!能运行!适用于初学者
【数据结构】基于二叉链表的二叉树结点个数的统计
基于二叉链表的二叉树结点个数的统计 描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写三个递归算法分别对二叉树的结点(度为0、1、2)个数进行统计。 输入 多组数据。每组数据一行,为二叉树的前序序列(序列中元素为‘0’时,表示该结点为空)。当输入只有一个“0”时,输入结束。 输出 每组数据输出一行,每行三个数分别为二叉树的度为0、1、2的结点个数。每两个数用空格分隔。 ...
遍历二叉树——统计结点个数
#include #include typedef  struct NODE { char data; struct NODE *Lchild; struct NODE *Rchild; }BiTree; int hight=0; int count=0; BiTree *ChangeTree(BiTree *root) { char ch; ch=getchar();
设计一个二叉树结点个数的非递归算法
设计一个二叉树结点个数的非递归算法rn我的分析为:用NUMS 来保存结点个数,然后采用先序遍历的解法,先把根结点入栈,然后再左子树和右子树入栈,最后返回结点个数。rn错误为:rn错误 2 与“cacluate.BinnaryTree.push(T)”最匹配的重载方法具有一些无效参数 C:\Inetpub\wwwroot\caculate\cacluate\Form2.cs 103 21 cacluaternrn错误 3 参数“1”: 无法从“cacluate.Node”转换为“T” C:\Inetpub\wwwroot\caculate\cacluate\Form2.cs 103 26 cacluaternif (tree.left != null)rn rn push(left);//此句错误??????rn// push stack to left tree rn rn我的源码为:rnpublic class BinnaryTree:Node rn rnrnrn BinnaryTree current = new BinnaryTree();rnrnrn //------------------------------custom stack method ----------------------------------------rn public bool isEmpty()rn rn if (top == -1)rn rn return true;rn rn elsern rn return false;rn rn rnrn public bool isFull()rn rn if (top == maxsize - 1)rn rn return false;rn rn elsern rn return true;rn rnrn rnrn public void push(T item)rn rn if (isFull())rn rn Console.WriteLine("stack is full");rn return;rn rn array[++top] = item;rn rnrn public T pop()rn rn T temp = default(T);rnrn if (isEmpty())rn rn Console.WriteLine("stack is null");rn return temp;rn rnrn temp = array[top];// set stack toprn --top;//stack nums change into smallrn return temp;rnrn rnrn rnrn //--------------------------custom binnary tree method ----------------------------------------rn public int CountNodes()rn rn num = 0;rn push(data);// root nodes to stack rn rn while (!isEmpty())rn rn current =pop();// current elements pop stack rn num++;// nums change raisernrn BinnaryTree tree = new BinnaryTree();rn if (tree.left != null)rn rn push(left);// left tree push stackrn rn if (tree.right != null)rn rn push(right);//right tree push stackrn rnrnrn rn return Num;rn rnrn rnrnrn rnrn public class Nodern rn //------------------------set binnary tree property----------------------------------------rn rnrn public int num;rn public Node left;//left treern public Node Leftrn rn get return left; rn set left = value; rn rn public Node right;//right treernrn public Node Rightrn rn get return right; rn set right = value; rn rn public T data;//data rnrn public T Datarn rn get return data; rn set data = value; rn rnrn public int Numrn rn get return num; rn set num = value; rn rn //-----------------------------set stack property--------------------------------------rn public T[] array; //save stack elememnts rnrn public T this[int index]rn rn get return array[index]; rn set array[index] = value; rnrn rn public int maxsize; //stack 's 容量rnrn public int Maxsizern rn get return maxsize; rn set maxsize = value; rn rnrn public int top;// stack top elementrnrn public int Toprn rn get return top; rn set top = value; rn rnrn rn rnrnrn
统计二叉树1度结点的个数的算法.请各位帮忙.
不知道从哪里入手,请指点.
数据结构与算法学习(一)——循环单链表
从表中的任意一个节点都能访问到表中的所有其他节点。 设置表中的最后一个节点的指针域指向表中的第一个节点,这种链表称为循环单链表。 单链表中某个结点p是表中的最后一个结点的特征是 p->next ==NULL;对于一个循环单链表,若首指针为head 表中某个结点的特征应该是 p->next == head。 typedef struct node{ datatype dat...
约瑟夫问题 算法 数据结构 循环单链表
// MARK: - 约瑟夫问题 // 链表节点 class Node: NSObject { var next: Node? var value: Int? } // 人的编号 var i = 1 // 头节点 let headNode = Node() headNode.value = 1 // 总人数 let m = 12 // 创建循环单链表 func genera...
带头结点非循环单链表
[code="c"] #include"stdio.h" #include"malloc.h" typedef struct Node { int data; Node *next; }Node; void InitNode(Node *&p) { p = (Node *)malloc(sizeof(Node)); p->next = NULL; } ...
数据结构——循环单链表
循环单链表是单链表的另一种形式,其结构特点链表中最后一个结点的指针域不再是结束标记,而是指向整个链表的第一个结点,从而使链表形成一个环。和单链表相同,循环链表也有带头结点结构和不带头结点结构两种,带头结点的循环单链表实现插入和删除操作较为方便。 循环单链表只是将单链表的尾结点的指针指向头结点,就直接书写代码,有一点需要主要的是在循环单链表中只有头结点时,将头结点的指针域不指向空,而是执行自己。 ...
数据结构-循环单链表
说明     循环单链表最后一个结点的指针指向头结点,整个链表形成一个环。在循环链表中,从任意一个结点出发都可以找到其他结点。 代码 /* ** cslink create by yubo.wang 2018.9.12 */ #include <stdio.h> #include <stdlib.h> typedef char ElemType; typedef...
数据结构之循环单链表
############################################################### 循环链表功能介绍 ############################################################### #1、创建 #2、检测 #3、长度 #4、插入:前端,后端、任意位置 #5、删除:基于元素,基于位置 ############...
怎么得到一个treeview的一个结点下子结点的个数.!
谢谢!
数据结构算法设计设计
掌握面向对象的基本特性:封装性的特点,继承性的优点和多态性的含义; 掌握C++比C增强的知识:函数原型与变量说明、输入输出、const说明符和void类型。
求二叉树的结点个数 【数据结构】
求二叉树的结点个数 如下利用递归来实现 方法一 根据递归函数实现,如果树不为空,根节点为1 1 统计根节点左子树 2 统计根节点右子树 3 将左子树节点个数+右子树节点个数+根节点个数1=即为整颗树的节点个数 4 统计左右子树的节点个数也是按照1~3的步骤进行 5 当树为空时,根节点的个数为0,即为递归函数的出口。 123 //方法一 : 结点个数= 树的左子树结点,加右子树结点+根...
将两个循环单链表合并成一个循环单链表
合并前 合并后 具体思路:             &am
数据结构顺序表中 *L 和 *&L
&是引用的意思,要返回到main里面进行操作、改变的顺序表需要带上&,如果只在对应函数操作的顺序表则不用。
2.4删除单链表L中一个最小值结点的高校算法(假设最小值结点是唯一的)
删除单链表L中一个最小值结点的高校算法(假设最小值结点是唯一的) //删除单链表L中一个最小值结点的高校算法(假设最小值结点是唯一的) #include #include #includestring.h> using namespace std; typedef struct LNode { int data; struct LNode *next;
使一个循环单链表逆转
C++ 实验 包含3个文件reverse.cpp CirHSLinkedList.h Node.h
算法 完全二叉树的结点个数问题
已知一个完全二叉树的根结点root,设计一个算法,求出此二叉树的结点个数n,要求算法的复杂度优于O(N)
常见面试算法题:统计一个Byte中的“1”的个数
题目描述:对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法执行效率尽可能地高 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >> 1,相当于num除以2 >>> : 无符号右移,...
求一个程序,要求实现单链表中结点的插入、删除、结点个数的统计。
3、编制一个程序,要求实现单链表中结点的插入、删除、结点个数的统计。rnrn具体要求:rn(1)、要求编制系统菜单,菜单中至少包含五大功能项:1、单链表的创建;2、结点的插入;3、结点的删除;4、统计结点个数;5、退出系统。rn(2)、单链表要带头结点;rn(3)、结点的插入:要求在值为x的结点之前插入值为y的结点,x,y由用户通过键盘输入;rn(4)、结点的删除:要求删除值为x的结点,x由用户通过键盘输入;rn(5)、结点的统计:不计头结点;rn(6)、要求系统界面友好,所有用户输入信息需讨论数据的合法性,输出结果的提示信息描述完备、清晰。rnrn相关提示:rn(1)、单链表中结点的存储结构定义:typedef struct nodern int data;rn struct node *next;rn LinkList;rn(2)、程序主体结构:rn第一块:rn#include ……rn#define ……rnstruct nodern ……rn rn相关全局变量的定义 ,等rn第二块:相关子函数的定义rn void CreatList()rn …… /*创建函数的定义*/ rnvoid DispList()rn …… /*输出函数的定义*/ rnvoid InsertList()rn …… /*插入函数的定义*/ rnvoid DeleteList()rn …… /*删除函数的定义*/ rnvoid Countnode()rn …… /*统计结点个数函数的定义*/ rn……rn第三块:主函数的定义rn void main( )rn ……rn dorn printf(“主菜单\n”); /*菜单的打印*/rn printf(“1、创建单链表\n”);rn ……rn printf(“请输入选择(1~5)”);rn scanf(“%d”,&cord);rn switch(cord)rn case 1:CreatList();DispList()/*函数调用*/rn case 2:……rn case 5:……;rn ……rn rnwhile(cord<=5);rn rn
数据结构 统计二叉树中度为0,1和2的结点个数
Description 给定先序序列,按照该序列创建对应的二叉树,并输出该二叉树度为0,1和2的结点个数。 Input 一行,二叉树按先序遍历序列,空指针用字符^占位 Output 一行,三个整数分别代表该二叉树度为0,1和2的结点个数 Sample Input ABD^^^CE^^F^^ Sample Output 3 1 2 递归遍历寻找 理解递归的思想 就很好理解程...
统计一个字符串中某个字符的个数
用汇编语言编写一个程序,要求统计一个字符串中某个字符的个数
统计一个整数的二进制中1的个数.
请实现一个函数,输入一个整数,输出该数的二进制表示中1的个数。 例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2.普通解法:int number_of_1(int n) { int count = 0; unsigned int flag = 1; while (flag){ if (n & flag) ++c
统计一个字符串中数字的个数
问题描述 统计一个字符串中数字的个数
统计一个字符串中某个字母的个数
用汇编语言编写程序:统计一个字符串中某个字母的个数。 求高手啊!!急急急!!!一天内给我 谢谢啊悬赏分:45 | 提问时间:2011-7-1 20:26 | 提问者:huisimei0902 | 问题为何被关闭 ;===========================================;程序如下: ;------------------------------------------
统计一个句子中的单词个数
要求:输入一个字符串,输出该字符串中的单词的个数,如" I am a collegestudnet. hei hei",输出结果为7 思路:用一个while循环扫描整个字符串,先将单词个数初始化为0,当扫描到一个单词则sum++,关键是如何判断是否满足为一个单词,如果用字符指针pIndex指向当前处理字符,则满足*pIndex!=' '&amp;&amp;*(pIndex+1...
统计一个字符串中的字符个数
统计一个字符串中的字符个数 思路:使用set()集合去重复,再在原列表中中逐个count()出set中的单词个数 s = "i am very very very love python" word = s.split(" ") #print word #print set(s.split(" ")) for word in set(s.split(" ")): x = s
统计一个字符串中出现的子字符串的个数
int calString(string A) { unsigned int cnt = 0; string s = "coder"; string::size_type pos = 0; while((pos = A.find(s,pos))!=string::npos) { ++cnt;
一个二叉树结点总数的算法
typedef struct btNodern int data;rn btNode *lchild;rn btNode *rchild;rnbtNode;rnrnint count(btNode *T)rn if(T)rn int m=count(T->lchild);rn int n=count(T->rchild);rn count=m+n+1;rn rn elsern count+=0;rnrnrn这个算法对吗?如果对的话,怎么理解这个程序呢?我不明白他是怎么一步步执行的
求助一个统计个数的查询语句
数据格式如下rnrn部门名称 任务 完成时间 实际完成时间rn部门1 任务1 2012-1-1 2012-1-2rn部门2 任务1 2012-1-1 2012-1-2rn部门3 任务1 2012-1-1 2012-1-1rn部门1 任务2 2012-1-10 2012-1-10rnrnrn我想得到的查询结果是rnrn部门名称 任务数 按时完成任务数 超时完成任务数rn部门1 2 1 1rn部门2 1 0 1rn部门3 1 1 0rnrn请问怎么写SQL语句呢,或者有什么方法可以实现rnrn我原来想到的做法是直接用代码构建DATATABLE,然后再多次查询插入到里面,但是查询结果都不对。
统计'L'的个数,总是异常~~请帮忙,谢谢!
#include "stdafx.h"rn#include rn#include rnusing namespace std;rnrnint _tmain(void)rnrn char abc[]='L','L','L','L','r','L','L','L','f','L',rn 'L','L','k','L','L','L','L','L','L','L',;rn char* p=0;rn p=abc;rn char* s=p;rn int count=0;rn while(*p=='L')rn rn s++;rn while ((*s)=='L')rn rn s++;rn p++;rn count++;rn rn while((*s)=='r') //如换成while ((*s)!='L')就出异常rn s++;rn while((*s)=='f') //如换成while ((*s)!='L')就出异常rn s++;rn while((*s)=='k') //如换成while ((*s)!='L')就出异常rn s++;rn p=s;rn count++;rn rn cout<
求一个统计的算法
技术问题:rn表名:病人检查表rn字段:病历号 病人姓名 检查项目 检查日期rnrn现在要求统计一年中,有哪些病人在10天内重复检查了2次、3次、5次相同的检查。rn这个SQL怎么写?rnrn竟量给简单写法,偶也不想用存储过程之类的实现~~
设计一个数据结构,保证LRU算法
只要保证,我们访问的顺序是我们数据结构的中的顺序,我们发现Linkedhashmap的一个构造函数 Map map = new LinkedHashMap(16,0.75f,true); 第一个参数:初始化大小 第二个参数:fuzai 第三个构造函数:false基于插入顺序,true基于访问顺序 import java.util.Iterator; import java.util.
求助:一个统计的算法
现在有三张表(A,B,C).他们都有相同的字段。rnrn RQ(日期) DW(单位) CH(车号) BM(编码) rn---------------------------------------------------rn rn然后我现在要统计它 在'2007-05-20'以后任意一个表中,有过记录的数.rn分别按当日 当月 当年 累计统计 CH(车号)的数量.rnrn我的想法 是不是应该写一个存储过程啊?用个判断.假如今天这个表中有这个数了.明天的数就不记录.rnrn请高手帮忙.rnrn统计的结果应该是 rnrn当日 当月 当年rn-------------------------rnrn
数据结构与算法(如何设计一个工厂的hash表)
回顾:通过上一节课的学习,我们不能笼统的说hash表的查找的时间复杂度为O(1 ),hash表的时间复杂度跟hash函数,装载因子,hash冲突等有关,如果hash函数设计的不好,或者装载因子过高,活导致hash表查询的时间复杂度增大,在极端的情况下,当hash函数设计不好,所有数据经过hash都存在同一个佣中,hash表查找会变成单链表的查找. 1&amp;gt;今天我们主要学习下该如何设计一个工程的...
设计一个算法,计算出n阶乘中尾部零的个数
32位编译器和64位编译器数据字节数(一个字节=8位) 编译器 int类型:4个字节32位(4*8),寻址空间为2^32,数据范围-2^31~2^31 long long类型:是一种超长整型,8字节64位(8*8),寻址空间为2^64数据范围-2^63~2^63 题目描述: 设计一个算法,计算出n阶乘中尾部零的个数 样例:11!=39916800,因此返回2 分析: 数字n的阶...
数据结构之python实现循环单链表
循环单链表
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法