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

📄 main.cpp

📁 数据结构试验 实验一 线性表的顺序表示与实现 实验二 线性表的链式表示与实现 实验三 栈与队列及其应用 实验四 二叉树的应用 实验五 图的遍历与应用 实验六 查找技术 实验七 内部排序
💻 CPP
字号:
#include <iostream.h>
#include <malloc.h>
#define MAXNUM 100
#define INCREMENT 10

typedef struct {
int *elem;
int length;
int listsize;
}SqList;

void CreatList(SqList &l) //建立一个顺序表,数据元素为整数,数据由键盘随机输入
{int n;
cout<<"请输入数据的个数:";
cin>>n;
l.elem=(int*)malloc(MAXNUM*sizeof(int));
for(int i=0;i<n;i++)
{cout<<"第"<<i+1<<"个元素为:";
cin>>l.elem[i];
l.length=n;
l.listsize=MAXNUM;
}
}

void PrintList(SqList &l)
{
	cout<<"顺序为表:";
for(int i=0;i<l.length;i++)
cout<<l.elem[i]<<" ";
cout<<endl;
}


void ListInsert(SqList &l,int j ,int x)
{
	int *newbase;
int *q,*p;
cout<<"请输入要插入的位置:";
cin>>j;
cout<<"要插入的元素是:";
cin>>x;
cout<<"在第"<<j<<"个元素前插入:"<<x<<endl;
if(l.length>=l.listsize)
{
	newbase=(int*)realloc(l.elem,(l.listsize+INCREMENT)*sizeof(int));
l.elem=newbase;
l.listsize+=INCREMENT;
}
q=&(l.elem[j-1]);
for(p=&(l.elem[l.length-1]);p>=q;--p)*(p+1)=*p;
*q=x;
++l.length;
}

void PrintInsert(SqList &l)
{
cout<<"插入后的顺序为:";
for(int i=0;i<l.length;i++)
cout<<l.elem[i]<<" ";
cout<<endl;
}

void ListDelete(SqList &l,int j)
{int *p,*q;int x;
cout<<"请输入要删除的位置:";
cin>>j;
p=&(l.elem[j-1]);
q=l.elem+l.length-1;
for(++p;p<=q;++p)
*(p-1)=*p;
--l.length;
x=l.elem[j-2];
cout<<"要删除第"<<j<<"个元素:"<<x<<endl;
}


void PrintDelete(SqList &l)
{cout<<"删除后的顺序表为:";
for(int i=0;i<l.length;i++)
cout<<l.elem[i]<<" ";
cout<<endl;
}

void main()
{SqList l;
int j=0;
int x=0;
cout<<"创建顺序表"<<endl;
CreatList(l);
PrintList(l);
ListInsert(l,j,x);
PrintInsert(l);
ListDelete(l,j);
PrintDelete(l);
}

⌨️ 快捷键说明

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