• 单向链表的查询【openjudge】


    总时间限制: 
    2ms 
    内存限制: 
    1024kB
    描述

    创建一个链式存储的线性表,要求找出该链表中值为x的元素有多少个?

    输入
    输入若干整数,以0结束。
    再输入x的值
    输出
    x在链表中出现的次数
    样例输入
    3 2 3 3 5 8 5 3 0
    3
    样例输出
    4
    提示

    本题只有一组测试数据,不需要重复


    这答题咋一看挺水。但是对我而言还是发现了许多问题。在大牛的眼里一定是不屑一做的题目。但是我通过这道题目还是发现了自己数据结构的薄弱,链表的薄弱。是在惭愧的很啊。指针神马的还是有待研究。。。。

    还有就是我发现了编译环境VC的c标准与codeblocks的gcc标准的各自利弊。。

    话说VC的容错性还真是强啊。明明在结构体那里定义完之后,声明head指针的时候,写成了Lnode *head,(应该是 LNode *head)但是竟然编译通过还运行了。我去。。

    好吧废话不多说了。期待我的进步了。不要急于求成了,链表什么的还没搞懂,二叉树还是慢慢来吧。话说数据结构老师直接跳过串和广义表这两章了。。直接到树了。。还能更坑有木有。不过也好。快点学吧。是时候逼逼自己了。

    #include <stdio.h>
    #include <malloc.h>
    typedef struct Lnode{
    	int data;
    	struct Lnode *next;
    }LNode,*Linklist;
    LNode *head;
    void initlist(Linklist *L)
    {
    	*L=(LNode *)malloc(sizeof(LNode));
    	(*L)->next=NULL;
    }
    void Inselem(int x)
    {
    	LNode *s;
    	s=(LNode *)malloc(sizeof(LNode));
    	s->data=x;
    	s->next=head->next;
    	head->next=s;
    }
    void Locate(int x)
    {
    	int sum=0;
    	LNode *p;
    	p=head->next;
    	while(p!=NULL)
    	{
    		if(p->data==x)
    			sum++;
    		p=p->next;
    	}
    	printf("%d\n",sum);
    }
    int main()
    {
    	int m,n;
    	initlist(&head);
    	while(scanf("%d",&m)!=EOF)
    	{
    		if(!m){
    			scanf("%d",&n);
    			Locate(n);}
    		else{
    			Inselem(m);
    			}
    	}
    	return 0;
    }
    


  • 相关阅读:
    css背景颜色渐变效果
    manachar算法小结
    hdu--3068 最长回文串(manachar模板)
    ac自动机小结
    hdu--2896 病毒侵袭(ac自动机)
    hdu--1251 统计难题(字典树水题)
    hdu--1540 Tunnel Warfare(线段树+区间合并)
    poj--3667 Hotel(线段树+区间合并)
    hdu--3308 LCIS(线段树+区间合并)
    hdu--5023 A Corrupt Mayor's Performance Art(线段树+区间更新+位运算)
  • 原文地址:https://www.cnblogs.com/unclejelly/p/4082170.html
Copyright © 2020-2023  润新知