c语言实训中表插入的函数 用c语言编写表格( 四 )


struct link *head = NULL;
printf("要创建一个链表吗?");
scanf(" %c", c);
while (c == 'y' || c == 'Y')
{
head = add(head);
printf("要继续创建节点吗?");
scanf(" %c", c);
}
display(head);
int b;
printf("输入插入的数据");
scanf("%d", b);
head = insert(head, b);
display(head);
freeNode(head);
}
struct link *add(struct link *head)
{
int data;
struct link *p = (struct link*)malloc(sizeof(struct link));
if (head == NULL)
{
head = p;
}
else
{
struct link *pr = head;//一个临时指针pr先保存下head的地址
while (pr-next != NULL)
{
pr = pr-next;
}
pr-next = p;
}
printf("输入数据");
scanf("%d", p-data);
p-next = NULL;
return head;
}
void display(struct link *head)
{
struct link *pr = head;
while (pr != NULL)
{
printf("%d\n", pr-data);
pr = pr-next;
}
}
struct link *insert(struct link *head, int b)
{
struct link *ptr = head, *prev = head;
struct link *newNode = (struct link *)malloc(sizeof(struct link));
newNode-data = https://www.04ip.com/post/b;
while (ptrbptr-data) {
prev = ptr;
ptr = ptr-next;
}
newNode-next = ptr;
if (ptr == head) head = newNode;
else prev-next = newNode;
return head;
}
void freeNode(struct link *node) {
if (!node) return;
freeNode(node-next);
free(node);
}
谁帮忙写个c语言链表的插入函数,void Insert(LinkList*L,int i,int e),并且输出链表的元素 。参数i,e没有说明是什么c语言实训中表插入的函数,c语言实训中表插入的函数我就理解为插入c语言实训中表插入的函数的位置和插入元素数值了
void Insert(LinkList *L,int i,int e)
{
LinkList *p,*q,*t;
t=(LinkList*)malloc(sizeof(LinkList));
t-data=https://www.04ip.com/post/e;
t-next=NULL;
p=L;
q=NULL;
while(i1)
{
q=p;
p=p-next;
【c语言实训中表插入的函数 用c语言编写表格】i--;
}
if(q==NULL)
{
L=t;
t-next=p;
}
else if(!p)
q-next=t;
else{
q-next=t;
t-next=p;
}
p=L;
while(p)
{
printf("%4d",p-data);
p=p-next;
}
}
c语言简单程序,有一段线性表插入的函数,请高手详细解析,十分感谢这是数据结构中标准c语言实训中表插入的函数的线性表插入程序c语言实训中表插入的函数,但是它不是真正的c语言 , 而是类c哦 。
status Insertlist(Sqlist L,int i,Elemtype e){
Elemtype *p;//在这里定义c语言实训中表插入的函数了一个*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;语句之前才对

推荐阅读