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

📄 1-22.cpp

📁 一些数据结构的源码
💻 CPP
字号:
#include <stdio.h>
#include<malloc.h>
typedef struct lnode
{
	int data;
	struct lnode *next;
}lnode,*linklist;

void creatlist_l(linklist &l,int n)
{
	l=(linklist)malloc(sizeof(lnode));
	l->next = NULL;
	linklist p;
	linklist q=l;
	printf("请输入数据:\n");
	for(int i=n;i>0;i--)
	{
		p=(linklist)malloc(sizeof(lnode));
		scanf("%d",&(p->data));
		p->next=NULL;q->next=p;q=p;
	}
}

void sort_l(linklist &l)
 { 
	int a;
	linklist p,q;
	p=l->next;
    while(p) 
	{
		q=p->next;
		while(q)
		{
			if(p->data>q->data)
			{
				a=p->data;
				p->data=q->data;
				q->data=a;
			}
			q=q->next;
		}
		p=p->next;
	}
    printf("排序后链表各元素为:\n");
	p=l->next;
  	while(p)
	{
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
}

void listinsert_l(linklist &l,int e)
{
	linklist s,p=l;
	while(p->next->data<e)p=p->next;
	s=(linklist)malloc(sizeof(lnode));
	s->data=e;s->next=p->next;
	p->next=s;
	printf("插入数据后的链式表为:\n");
	p=l->next;
	while(p)
	{
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
}

void listdelete_l(linklist &l,int e)
{
	linklist p=l;
	while(p->next->data!=e&&p->next)p=p->next;
	linklist q;
	q=p->next;
	while(q->data==e)
	{
		p->next=q->next;
		q=q->next;
	}
	//free(q);
	printf("删除数据后的链式表为:\n");
	p=l->next;
	while(p)
	{
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
}

void main()
{
	linklist l;
	int n,a;
	int i=1;
	char word;
	while(i)
	{
		printf("请选择你要进行的操作:A为建立线性表;B为插入数据;C为删除数据;D为退出\n");
		scanf("%c",&word);
		switch(word)
		{
		  case'A':printf("请输入你要输入数据的个数:\n");scanf("%d",&n);creatlist_l(l,n);sort_l(l);break;
		  case'B':printf("请输入要插入的数:\n");scanf("%d",&a);listinsert_l(l,a);break;
		  case'C':printf("请输入要删除的数:\n");scanf("%d",&a);listdelete_l(l,a);break;
		  case'D':i=0;break;
		  default:printf("输入错误!\n");break;
		}
	}
	
}

⌨️ 快捷键说明

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