首页 > 其他分享 >链表

链表

时间:2023-04-16 14:31:35浏览次数:29  
标签:struct point int next 链表 Test data

数据的创建,前插后插,遍历,计数,动态内存开辟动态创建等

链表_动态创建

#include <stdio.h>

#define dedata 8

struct Test
{
	int data;
	struct Test *next;
};

void Printlink(struct Test *point)
{
	//struct Test *point;
	//point = head;
	int count = 0;
	while(point != NULL)
	{
		printf("%d ",point->data);
		point = point->next;
		count++;
	}
	putchar('\n');
	printf("Total number of link is %d\n",count);

}

int search_number(struct Test *point,int data)
{
	int count = 0;
	while(point != NULL)	
	{
		count++;
		if(point->data == data)
		{
			return 1;
		}
		point = point->next;
	}
	return 0;
}

int insert_number_from_beh(struct Test *point,int insert_data,struct Test *new)
{
	while(point != NULL)
	{
		if(point->data == insert_data)
		{
			new->next = point->next;
			point->next = new;
			return 1;
		}
		point = point->next;	
	}
	return 0;
}

struct Test* insert_number_from_head(struct Test *head,int insert_data,struct Test *new)
{
	struct Test *p;
	p = head;
	if(p->data == insert_data)
	{
		new->next = p;
		head = new;
		return head;
	}	
	while(p != NULL)
	{
		if(p->next->data == insert_data)
		{
			new->next = p->next;
			p->next = new;
			printf("find it\n");
			return head;
		}
	p = p->next;

	}
	printf("Not find it\n");
}


int main()
{
	int arr[] = {1,2,3,4,5,6,7,8,9,};
	int i = 0;

//	struct Test *retr;

	for(i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
	{
		printf("%d ",arr[i]);
	}
	putchar('\n');
	
	struct Test t1 = {1,NULL};
	struct Test t2 = {2,NULL};
	struct Test t3 = {3,NULL};
	struct Test t4 = {4,NULL};

	struct Test t5 = {100,NULL};
	
	struct Test t6 = {110,NULL};	
	

	t1.next = &t2;
	t2.next = &t3;
	t3.next = &t4;

	printf("use t1 to print three umbers.\n");
 	//printf("%d %d %d\n",t1.data,t1.next->data,t1.next->next->data);
	Printlink(&t1);
	int findata = dedata;
	int ret = search_number(&t1,findata);
	if(ret == 1)
		printf("find the number %d\n",findata);
	else
		printf("Not find\n");


	insert_number_from_beh(&t1,4,&t5);
	Printlink(&t1);
	
	struct Test *retr = insert_number_from_head(&t1,1,&t6);
	Printlink(retr);


	return 0;


}

标签:struct,point,int,next,链表,Test,data
From: https://blog.51cto.com/u_15906483/6193463

相关文章

  • [牛客]链表中倒数第k个结点
    牛客链接使用快慢指针法:两种思路:1.fast先向后走k-1次,slow再向后走1次,然后fast和slow同时向后走,当fast走到最后一个结点时,slow刚好在倒数第k个位置上;2.fast先向后走k次,slow再向后走1次,然后fast和slow同时向后走,当fast走到最后一个结点的后面时(此时为NULL),slow刚好在倒数......
  • 算法-回文链表-24
    /***Definitionforsingly-linkedlist.*publicclassListNode{*publicintval;*publicListNodenext;*publicListNode(intx){val=x;}*}*/publicclassSolution{publicListNodeReverseList(ListNodehead){i......
  • 链表
    list链表:STL中的链表是双向循环链表迭代器不支持随机访问包括数据域和指针域构造:默认、区间、拷贝、n个elem赋值:重载=、区间,n个elem交换:swap();大小:resize();插入和删除:remove();insert();erase();数据存取:无法使用[]和at, 可以使用front();back();不支持随机访问的......
  • 环形链表_相交链表_多数元素(java语言)
    环形链表力扣141题问题:思路:创建hashset,把链表的每个节点放到集合中,在放入的过程中检查这个节点是否已经存在,存在则证明存在环。代码实现:publicclassSolution{publicbooleanhasCycle(ListNodehead){Set<ListNode>set=newHashSet<>();whi......
  • #yyds干货盘点# LeetCode程序员面试金典:K 个一组翻转链表
    题目:给你链表的头节点head,每 k 个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例1:输入:head=[1,......
  • 23-4-14--链表--银行排队问题之单队列多窗口服务
    假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统......
  • EF 多个链表查询
      查询格式如下:varresult=(frompinPackagejoinqinPackageLocationPricesonp.Idequalsq.PackageIdintopqfromrinpq.DefaultIfEmpty()selectnew{p,r}).ToList(); ......
  • 链表
    概述链表是一种通过指针串联在一起的线性结构链表在内存中的存储形式链表中的节点在内存中不是连续分布的,而是散乱分布在内存中的某地址上链表有节点组成,每个节点又分成两个部分:1)数据域(data)2)指针域数据域:存放数据指针域:存放指针,指向节点头节点(head)......
  • #yyds干货盘点# LeetCode程序员面试金典:两两交换链表中的节点
    题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]代码实现:classSolution{publicListN......
  • 链表应用 II
    目录链表应用II应用2:Leetcode.25题目分析代码实现链表应用II应用2:Leetcode.25题目25.K个一组翻转链表输入:\(head=[1,2,3,4,5]\),\(k=2\)输出:\([2,1,4,3,5]\)分析这里,我们以前面题目中的用例,来说明算法的步骤。为了避免讨论边界条件,这里,我们使用一个\(dummy\)......