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