list删除

list删除,第1张

方法/步骤

第一步在我们的电脑上打开软件,创建一个项目,然后创建一个类,

第二步创建完成之后,我们来实现先在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 为你所要的函数


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11873614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存