核心代码
void Count(LinkList head,int y)
{
LinkList p;
p=head;
int n=0;
while(p->next!=NULL)
{
p=p->next;
if(p->data==y)
n++; //while循环统计出现次数
}
printf("%d出现次数为:%d",y,n);
}
main函数部分
int main()
{
LinkList Tail_Head;
int m;
ElemType d[6]={17,24,5,45,6,17};
Tail_Head=CreateListTail(d,6);
printf("单链表是:\n");
PrintList_List(Tail_Head);
printf("\n");
printf("请输入需要统计的值:");
scanf("%d",&m);
Count(Tail_Head,m);
printf("\n");
return 0;
}
全部代码
#include <stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
typedef int Status;
typedef int ElemType;
typedef struct Node{
ElemType data; //存放元素值
struct Node *next;//指针域指向后继结点
}Node;
typedef struct Node * LinkList;
LinkList InitList_List(void); //初始化
LinkList CreateListTail(ElemType a[],int n); //建表
void PrintList_List(LinkList head); //输出
void Count(LinkList head,int y); //统计
int main()
{
LinkList Tail_Head;
int m;
ElemType d[6]={17,24,5,45,6,17};
Tail_Head=CreateListTail(d,6);
printf("单链表是:\n");
PrintList_List(Tail_Head);
printf("\n");
printf("请输入需要统计的值:");
scanf("%d",&m);
Count(Tail_Head,m);
printf("\n");
return 0;
}
LinkList InitList_List(void)
{
LinkList head;
head=(Node *)malloc(sizeof(Node));
if(head ==NULL) exit(1);
head->next=NULL;
return head;
}
LinkList CreateListTail(ElemType a[],int n)
{
LinkList head,p,q;
int i;
head=InitList_List();
q=head;
for(i=0;i<n;i++)
{
p=(Node *)malloc(sizeof(Node));
p->data=a[i];
q->next=p;
q=p;
}
p->next=NULL;
return head;
}
void PrintList_List(LinkList head)
{
LinkList p;
p=head;
while(p->next!=NULL)
{
p=p->next;
printf(" %d ",p->data);
}
}
void Count(LinkList head,int y)
{
LinkList p;
p=head;
int n=0;
while(p->next!=NULL)
{
p=p->next;
if(p->data==y)
n++; //while循环统计出现次数
}
printf("%d出现次数为:%d",y,n);
}
结果
看完点赞!!!谢谢!!!