单链表操作实现getelem_C语言实现顺序表和单链表的基本操作

#include #pragma warning(disable : 4996)

#define ListSize 10

#define ListIncrement 3

typedef int LElemType;

typedef struct {

LElemType *base;

int length;

int listsize;

}Sqlist;

void InitSqlist(Sqlist &L) {

L.base = (LElemType*)malloc(ListSize * sizeof(LElemType));

if (!L.base)

return;

int length = 0;

int listsize = ListSize;

}

int ListEmpty(Sqlist L) {

if (L.length != 0)

return 0;

return 1;

}

int ListLength(Sqlist L) {

return L.length;

}

void GetElem(Sqlist L, int i, int &e) {

if (i<0 || i>L.length)

return;

e = L.base[i - 1];

}

int LocateElem(Sqlist L, int e) {

int i = 0;

while (i < L.length) {

if (e == L.base[i])

return i+1;

i++;

}

return 0;

}

void ListInsert(Sqlist &L, int i, int e) {

if (i<1 || i>L.length+1)

return;

if (L.length >= L.listsize) {

LElemType *newbase = (LElemType*)realloc(L.base, (ListSize + ListIncrement)*sizeof(LElemType));

if (!newbase)

return;

L.base = newbase;

L.listsize = ListSize + ListIncrement;

for (int j = L.length; j>=i; j--)

L.base[j] = L.base[j - 1];

L.base[i] = e;

L.length++;

}

}

void ListDelete(Sqlist &L, int i,int &e) {

if (i<0 || i>L.length)

return;

e = L.base[i- 1];

while (i < L.length) {

L.base[i - 1] = L.base[i];

i++;

}

L.length--;

}

int main() {

Sqlist L;

InitSqlist(L);

printf("请输入整型数据,按ctrl+z +enter 结束输入/n");

int i = 0;

while (scanf("%d", L.base[i]) != EOF) {

L.length++;

i++;

}

if (ListEmpty(L)) {

printf("为空/n");

}

else

printf("非空/n");

int j;

printf("输入带查找的元素位序/n");

scanf("%d",&j);

printf("第%d个元素值为%d", j, GetElem);

printf("输入待插入元素位序和值/n");

int a, b;

scanf("%d%d",&a,&b);

ListInsert(L,a,b);

printf("输入待查找位序的元素值/n");

int c;

scanf("%d", &c);

printf("%d", LocateElem(L,c));

//.........//

return 0;

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值