怎样用C语言实现数据结构中的int GetElem(SqList L,int i,int *e)算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用C语言实现数据结构中的int GetElem(SqList L,int i,int *e)算法相关的知识,希望对你有一定的参考价值。

typedef struct int *elem; int length; int listsize; SqList; int GetElem(SqList L,int i,int *e) //取顺序表中第 i 个元素 if(L.elem) return OVERFLOW; if((i>L.length)&&(i<=0)) return ERROR; *e=L.elem[i-1]; return OK; 想在main函数中调用GetElem,并用printf("顺序表中第 %d 个元素为 %d\n",k,*p1)输出,该怎样做?

c语言主要通过自己定义函数来实现数据结构,比如实现堆栈,实现了先输入后输出,用函数来实现各个接口;
但是c++也可以通过这个办法,来实现数据结构,
还有很简单,就是stl
框架,这个是系统自动定义的函数。用起来容易
参考技术A 你的GetElem()函数有错误,第二个
if
中,应该是
if(i
<
1
||
i>L.length)
,其中1表示第一个元素。
这是我看到的问题。

c语言中怎样通过索引获取结构体成员的值

c语言中怎样通过索引获取结构体成员的值c语言中怎样通过索引获取结构体成员的值。例如: struct Test char a; int b; int c;,当然成员变量的类型是不确定的。我怎样才能实现通过索引值来获取成员变量的值,比如我要访问a,则给出的是索引值1,访问数据结构成员b,则给出2即可,以此类推。求大侠们帮帮忙。先谢过了。

也许你可以定义一个数组,数组的值是结构体各个成员在结构体中的偏移位置,如
const int offset[] = 0, sizeof(char), sizeof(char)+sizeof(int);
struct Test a;
那么访问第一个数据可以
char num1 = *(char*)((char*)&a + offset[0]);
int num2 = *(int*)((char*)&a + offset[1]);
int num3 = *(int*)((char*)&a + offset[2]);
参考技术A 你可以通过switch实现,每个case时注意成员类型。 参考技术B 不可能!

以上是关于怎样用C语言实现数据结构中的int GetElem(SqList L,int i,int *e)算法的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎样实现对数组数据的删除、修改?

怎样用c语言实现平均值?

c语言中怎样通过索引获取结构体成员的值

怎样用c语言实现取一个数字的个位

C语言中怎样实现对数组数据的删除、修改?

C语言中怎样实现对数组数据的删除、修改?