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

📄 linklist.cpp

📁 自己写的数据结构代码
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define OVERFLOW -2
#define ERROR -1
#define OK 1

typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode,*LinkList;

int CreateLink_L(LinkList &L,int n)
{
	LinkList p,q;
	int i;
	L=(LinkList)malloc(sizeof(LNode));
	
	L->next=NULL;
	q=L;
	for(i=1;i<=n;i++)
	{
		p=(LinkList)malloc(sizeof(LNode));
		scanf("%d",&p->data);
		q->next=p;
		q=p;
	}
	q->next=NULL;
	return OK;
}

int LoadLink_L(LinkList &L)
{
	LinkList p=L->next;
	printf("The LinkList is:"); 
	while(p!=NULL)
	{
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
	return OK;
}

int LinkInsert(LinkList &L,int i,int e)
{
	LinkList p,s;
	int j=0;
	p=L;
	while(p && j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!p || j>i-1) return ERROR;
	s=(LinkList)malloc(sizeof(LNode));
	s->data=e;
	s->next=p->next;
	p->next=s;
	return OK;
}

int ListDelete_L(LinkList &L,int i,int &e)
{
	LinkList p=L,q;
	int j=0;
	while(p->next && j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!(p->next) || j>i-1)  return ERROR;
	q=p->next;
	p->next=q->next;
	e=p->data;
	free(q);
	return OK;
}

int main() 
{ 
	LinkList L; 
	int a,n,i,x; 
	scanf("%d",&n); 
	if(CreateLink_L(L,n)) 
	{ 
		LoadLink_L(L); 
	} 
	while(1) 
	{ 
		printf("1:Insert element\n2:Delete element\n3:Load all elements\n0:Exit\nPlease choose:\n"); 
		scanf("%d",&a); 
		switch(a) 
		{ 
		case 1: scanf("%d%d",&i,&x); 
			if(LinkInsert(L,i,x)==ERROR) printf("ERROR\n");  
			else LoadLink_L(L); 
			break; 
		case 2: scanf("%d",&i); 
			if(ListDelete_L(L,i,x)==ERROR) printf("ERROR\n"); 
			else LoadLink_L(L); 
			break; 
		case 3: LoadLink_L(L); 
			break; 
		case 0: return 0; 
		} 
	} 
	return 0;
} 

/*
int main()
{
	LinkList T;
	int a,i,x,n;
	scanf("%d",&n);
	if(CreateLink_L(T,n))
	{
		LoadLink_L(T);
	}
	while(1)
	{
		printf("1:Insert element\n2:Delete element\n3:Load all elements\n0:Exit\nPlease choose:\n");
		scanf("%d",&a);
		switch(a)
		{
		case 1:scanf("%d%d",&i,&x);;
			
			if(LinkInsert(T,i,x)==ERROR)
			{
				printf("ERROR\n");
			}
			else LoadLink_L(T);
			break;
			
		case 2:scanf("%d",&i);
			
			if(ListDelete_L(T,i,x)==ERROR)	printf("ERROR\n");
			
			else LoadLink_L(T); 
			break;
			
		case 3:LoadLink_L(T);
			break;
		case 0:return 0;
		}
	}
	return 0;
}


*/









⌨️ 快捷键说明

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