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

📄 1-1.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;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
    Initlist_sq(l);
    sort_sq(l);
    int c;
	printf("请选择要进行的操作:1为插入数据;2为删除数据\n");
	scanf("%d",&c);
	int i;
    if(c==1)
	{
		printf("请输入要插入的数:\n");
	    scanf("%d",&i);
        listinsert_sq(l,i);
	}
	else if(c==2)
	{
	    printf("请输入要删除的数:\n");
	    scanf("%d",&i);
        listdelete_sq(l,i);
	}
}

⌨️ 快捷键说明

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