
第一步在我们的电脑上打开软件,创建一个项目,然后创建一个类,
第二步创建完成之后,我们来实现先在list集合中添加元素,然后删除list集合中元素,首先创建一个赋值给list集合的数组,
第三步我们创建一个list集合,通过for循环和list.add(arr[i])方法,将数组的值添加到list中,
第四步我们运行项目,在控制台可以看到list集合里面已经成功添加了元素,
第五步我们在list集合添加数据之后,通过list.remove(k)方法进行删除list集合元素,k代表元素在list集合的位置,
第六步可以看到我们已经成功删除了list集合的第三个元素,删除第几个元素可以通过k值确定。
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define MaxSize 50
#define len(x) sizeof(x)/sizeof(x[0])
typedef struct SqList
{
int data[MaxSize]
int length
}SqList
static SqList Create(int a[],int n)//用一个数组创建静态顺序表
static void Print(SqList L)//打印一个静态顺序表
static void ListInsert(SqList *p,int i,int e)//L的第i个位置插入e
static void ListDelete(SqList *p,int i)//删除列表第i个数据
static int LocateElem(SqList L,int e)//查找第一个值等于e的元素,返回其位序
static void Reverse(SqList *p,int left,int right)//逆置表的第left到right的元素顺序
/*递增序列折半查找等于e的元素,返回其位序*/
static int Binsearch(SqList L,int e)
int main()
{
int a[]={1,2,3,4}
SqList L=Create(a,len(a))
ListInsert(&L,2,100)
ListDelete(&L,2)
Reverse(&L,1,4)
Print(L)
printf("%d\n",Binsearch(L,2))
}
static SqList Create(int a[],int n)
{
SqList L
int i
L.length=n
for(i=0i<L.lengthi++)
L.data[i]=a[i]
return L
}
static void Print(SqList L)
{
int i
for(i=0i<L.lengthi++)
printf("%d ",L.data[i])
printf("\n")
}
static void ListInsert(SqList *p,int i,int e)
{
int j
if(i<1 || i>p->length+1)
{printf("错误范围\n")}
if(p->length>=MaxSize)
{printf("存储空间已满\n")}
for(j=p->lengthj>=ij--)
p->data[j]=p->data[j-1]
p->data[i-1]=e
p->length++
}
static void ListDelete(SqList *p,int i)
{
if(i<1 || i>p->length)
{printf("删除范围出错\n")return}
while(i<p->length)
{
p->data[i-1]=p->data[i]i++
}
p->length--
}
static int LocateElem(SqList L,int e)
{
int i
for(i=0i<L.lengthi++)
if(L.data[i]==e)
return i+1
return 0
}
static void Reverse(SqList *p,int left,int right)
{
int temp
if(left>right || left<1 || right>p->length)
{printf("错误的输入\n")return}
for(left--,right--left<rightleft++,right--)
{
temp=p->data[left]
p->data[left]=p->data[right]
p->data[right]=temp
}
}
static int Binsearch(SqList L,int e)
{
int mid,low=0,high=L.length-1
while((low+1)!=high)
{
mid=(low+high)/2
if(L.data[mid]==e) return mid+1
if(e<L.data[mid]) high=mid
if(e>L.data[mid]) low=mid
}
return 0
}
ListInsert 和 ListDelete 为你所要的函数
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)