c语言线性表输入函数 c语言线性表输入函数怎么输入

C语言中初始化线性表,并从键盘输入值

数据结构 如果只建立线性表 那是不能使表保持顺序的 只有链表才能 所以我用了链表

成都创新互联公司专注于莱州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供莱州营销型网站建设,莱州网站制作、莱州网页设计、莱州网站官网定制、重庆小程序开发公司服务,打造莱州网络公司原创品牌,更为您提供莱州网站排名全网营销落地服务。

还有就是自己多看看书 自己多想想代码

#include stdio.h

#include stdlib.h

typedef int elemtype;

typedef struct xianxing

{

struct xianxing *next;

elemtype number;

}ST;

ST *Init_SequenList()//实现初始化一个线性表的函数

{

ST *L;

L = (ST *)malloc(sizeof(ST));

L-next = NULL;

return L;

}

ST * add_head(ST *head)//实现往链表内添加数字函数 按照升顺序的

{

ST *q ,*p;

p = head;

q = (ST *)malloc(sizeof(ST));

printf("请输入你要添加的数:");

scanf("%d",q-number);

if(p-next == NULL)

{

q-next = p-next;

p-next = q;

}

else

{

while(p-next-number q-number)//比较大小 找到插入的位置

{

p = p-next;

}

q-next = p-next;

p-next = q;

}

return head;

}

void show_head(ST *head)//显示链表

{

ST *p;

p = head;

while(p-next)

{

printf("%d\n",p-next-number);

p = p-next;

}

}

void main()

{

ST *head;

int n ;//n个元素

printf("请输入你要创建几个元素:");

scanf("%d",n);

head = Init_SequenList();//初始化一个线性表

while(n)

{

head = add_head(head);//往线性表里添加数

n--;

}

show_head(head);//显示链表

}

c语言顺序表的输入函数

建立方法很多,线性表是顺序表的顺序存储结构,这里我给你写个简单的例子参考一下,只要理解了,怎么写都不会错:具体代码如下: #include typedef struct{ int data[100]; int length; }Seqlist;//定义Seq这个新的数据类型 void creat(Seqlist L);//建立线性表 void show(Seqlist L);//显示线性表 int main() { Seqlist L; L.length=0;//初始化线性表的长度为0 creat(L); show(L); return 0; } void creat(Seqlist L) { int a; printf("请输入要创建的元素的个数:\t"); scanf("%d",a); for(int i=0;i

c语言简单程序,有一段线性表插入的函数,请高手详细解析,十分感谢

这是数据结构中标准的线性表插入程序,但是它不是真正的c语言,而是类c哦。

status Insertlist(Sqlist L,int i,Elemtype e){

Elemtype *p; //在这里定义了一个*p的指针,目的是找到链表中每个结点的首地址就可以了,不用找一个结点的所用地址啊

int j;

if(L.length==L.listsize) //L.listsize是代表的表的上限值,是事先设定好的

printf("内存分配空间已不够,请重新分配:\n");

p=L.elem;//这条语句应该写在下一条语句的后面,也就是分配后的地址给到临时指针变量p中

L.elem=(Elemtype *)realloc(p,(LISTSIZE+L.listsize)*sizeof(Elemtype));

//这条语句是想一下子分配足够大的线性表空间,realloc在C中不认可的,实现时还要用malloc,这里只是设计实现的,而分配成功后L.elem只是得到分配单元的首地址,不成功则是空值。

if(!p){

printf("分配空间失败");

exit(0);

}

L.elem=p;//这条语句应该没用吧

L.length++;//这条语句应该放在成功插入的后面,也就是return 1;语句之前才对

L.listsize=L.listsize+LISTSIZE_INCE;

if(i1||iL.length){ //这里用到的是运算符||,代表是“或”,也就是说i1代表输入时误操作造成,而iL.length代表输入的位置超出表中数据的个数,位置找不到。

printf("插入位置输入不正确,请重新操作:\n");

return 0;//代表插入失败

}

else{

for(j=L.length-1;j=i;j--)//从i到最后表尾顺次下移,腾出i的位置

L.elem[j+1]=L.elem[j];

L.elem[i]=e;//将数据插入到i的位置中

return 1;//代表插入成功

}

return 1;

}


本文标题:c语言线性表输入函数 c语言线性表输入函数怎么输入
URL网址:http://azwzsj.com/article/ddspdho.html