概述
#include <stdio.h>
#include <stdlib.h>
struct node{
int date;
struct node *next;
};
struct node* creattable(int n)///n节点个数
{
int i,a;
struct node *head,*p1,*p2;
head = NULL; ///头结点为空
///输入节点内容
for(i=n;i>0;i--)
{
///(类型*)malloc(大小),返回指针
///sizeof(结构体名)计算结构体大小
p1=(struct node*)malloc(sizeof (struct node));//申请内存空间
///a用来保存节点的date
scanf("%d",&a);
p1->date = a;
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next = p1;
p2 = p1;
}
}
p2->next = NULL;
///返回头结点
return head;
}
void insert(struct node *head)
{
char ch;
int iposx,numi,j=0,k=0;
struct node *q,*s;
q=head;
do
{
printf("Please enter index:");
scanf("%d",&iposx);
printf("Please enter number:");
scanf("%d",&numi);
while(q&&j<iposx-1)
{
q=q->next;
++j;
}
if(!q||j>iposx-1)
{
exit(1);
}
s=(struct node*)malloc(sizeof (struct node));
s->date=numi;
s->next=q->next;
q->next=s;
printf("n是否需要输入更多序列 (Y/N) ? ");
getchar();
ch=getchar();
k++;
}
while(ch=='y'||ch=='Y');
}
int main()
{
int n;
struct node *p;
printf("Please enter the number of nodes:");
scanf("%d",&n);//节点个数
p=creattable(n);
insert(p);
while(p)
{
printf("%d ",p->date);
p = p->next;
}
return 0;
}
最后
以上就是粗心小兔子为你收集整理的C语言-数据结构-插入的全部内容,希望文章能够帮你解决C语言-数据结构-插入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复