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

📄 1-11.cpp

📁 一些数据结构的源码
💻 CPP
字号:
#include <stdio.h>
#include<malloc.h>
#define list_init_size 100
#define listincrement 10
typedef struct
{
	int * elem;
	int length;
	int listsize;
}sqlist;

void Initlist_sq(sqlist &l)
{
	int n;
	l.elem=(int*) malloc(list_init_size*sizeof(int));
	if(!l.elem) printf("存储分配失败!");
	l.length=0;
	l.listsize=list_init_size;
	printf("请输入你要输入数据的个数!\n");
	scanf("%d",&n);
	printf("请输入数据!\n");
	l.length=n;
	for(int i=0;i<n;i++)
	
		scanf("%d",&l.elem[i]);
}

void sort_sq(sqlist &l)
 { 
	int i,j,t;
    for(i=0;i<l.length;i++)
     for(j=i+1;j<l.length;j++)
	  if(l.elem[j]<l.elem[i])
	  {
		  t=l.elem[i];
		  l.elem[i]=l.elem[j];
		  l.elem[j]=t;
	  }
  printf("排序后线性表各元素为:\n");
  for(i=0;i<l.length;i++)
   {printf("%d",l.elem[i]);
    printf(" ");
   } 
  printf("\n");
}

void listinsert_sq(sqlist & l,int e)
{
	int *newbase;
	if(l.length>=l.listsize)
	{
		newbase=(int*) realloc(l.elem,(l.listsize+listincrement)*sizeof(int));
     	if(!newbase) printf("存储分配失败");
    	l.elem=newbase;
    	l.listsize+=listincrement;
	}
	int p,i=0;
	p=l.elem[i];
	while(p<=e)
	{
		++i;p=l.elem[i];
	}
    int *q;
	q=&(l.elem[i]);
	int *a;
	for(a=&(l.elem[l.length-1]);a>=q;--a) *(a+1)=*a;
	*q=e;
	++l.length;
	printf("插入元素后线性表各元素为:\n");
	for(i=0;i<=l.length-1;i++)
		printf("%d ",l.elem[i]);
	printf("\n");

}

void listdelete_sq(sqlist &l,int e)
{
	int i=0;
    int *q,*a;
    for(i=0;i<=l.length-1;++i)
	{
		if(l.elem[i]==e)
		{
			q=&(l.elem[i]);
			a=l.elem+l.length-1;
			for(++q;q<=a;++q)*(q-1)=*q;
			--l.length;
		}
	}
	printf("删除元素后线性表各元素为:\n");
    for(i=0;i<=l.length-1;i++)
		printf("%d ",l.elem[i]);

}

void main()
{

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

⌨️ 快捷键说明

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