⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 llist0.h

📁 一些基本的数据结构
💻 H
字号:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/*-------------------函数结果状态代码--------------*/

#define FALSE 0
#define OK 1


/*-------------------代码状态-------------------------------*/
typedef int Status;
typedef int Element;

typedef struct Node 
 {
  int date;
  struct Node *next;
 }Node,*LinkList;

/*-------------------------创建链表--------------------------*/
LinkList creat(LinkList L ,int *arr,int n)
 {
   struct Node  *p,*s;
   int i;
   L=(LinkList)malloc(sizeof(Node));/*开辟空间*/
   if(L==NULL)  {printf("fail\n"); }
   L->date=arr[0];
         L->next=NULL;
   p=L;
   for(i=1;i<n-1;i++)                                       /*存储数据*/
    { 
      s=(struct Node *)malloc(sizeof(Node));
      if(!s)  {printf("fail\n");}
      s->date=arr[i];
      s->next=NULL;
      p->next=s;
      p=s;
    }
 // p->next=NULL;                                           /*构建循环链表*/
  return  L;
 }
/*--------------------------输出链表-------------------------*/
Status output(LinkList L,int n)
{
    LinkList p;
    int i;
    p=L;
    printf("ListLink=");
    for(i=0;i<n-1;i++)
    {
        printf("%3d",p->date);
          p=p->next;

    }
    printf("\n");
	return OK;
}

/*---------------------------插入数据---------------------*/
Status insert(LinkList Link,int k,int n)
{

	struct Node  *p,*s;
    int i;	
	p=Link;
	s=(struct Node *)malloc(sizeof(Node));
   for(i=1;i<n-1;i++)
   {
	  p=p->next;
   }  
      s->date=k;
      s->next=NULL;
      p->next=s;
      p=s;
	  return OK;
 }

/*------------------------删除数据------------------------------*/
//m代表删除的是第几个数
Status Delete(LinkList Link,int m,int n)
{
   
	struct Node  *p,*q;
    int i;
	if(m>n)
		   {
	      	printf("you input wrong!");
		    return  FALSE;
		   }

	p=Link;
	q=(struct Node *)malloc(sizeof(Node));
    for(i=1;i<m-1;i++)
    {
	  p=p->next;
    }  
       q=p->next;
	   p->next=q->next;
       delete q;
	   return OK;

 }

/*---------------------------查找------------------------------*/

//m代表查找的是第几个数
int Find(LinkList Link,int m,int n)
{
   
	struct Node  *p;
    int i,find;
	if(m>n)
		   {
	      	printf("you input wrong!");
		    return  FALSE;
		   }

	p=Link;
    for(i=1;i<m;i++)
    {
	  p=p->next;
    }  
    find=p->date; 
	return find;

 }

/*-------------------------销毁链表----------------------------*/
Status  Drop(LinkList Link)
{
  delete Link;
  return OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -