半夜菜鸟请教 关于node结构体问题
下面代码中 破坏链接函数 void destroynoe(struct node* destroy,struct node* head); 并没在 main中调用 怎么会起作用呢? 百思不解 所以来请教大家#include<stdio.h>
#include<stdlib.h>
struct node* inserthnode(struct node* current,int data); //当前node后面插入新node函数
void destroynoe(struct node* destroy,struct node* head); // 破坏链接函数
struct node* createnode(int data); //创建node函数
void printnodefrom(struct node* from); //输出函数
struct node
{
int data;
struct node *nextnode;
};
int main()
{
struct node* node1= createnode(100);
struct node* node2=inserthnode(node1,200);
struct node* node3=inserthnode(node2,300);
struct node* node4=inserthnode(node2,400); // node2后面加 node4
printnodefrom(node1);
return 0;
}
void printnodefrom(struct node *from) //输出函数
{
while(from)
{
printf("node的数据是:%d \n",(*from).data);
from=from->nextnode;
}
}
struct node* inserthnode(struct node* current,int data) //当前node后面插入新node函数
{
struct node* after=current->nextnode;
struct node* newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=data;
newnode->nextnode=after; /* 刚才错误的地方 */
current->nextnode=newnode; /* 刚才错误的地方 */
return newnode;
}
void destroynoe(struct node* destroy,struct node* head) // 破坏链接函数
{
struct node *next=head;
if(destroy==head)
{
free(destroy);
return;
}
while(next)
{
if(next->nextnode==destroy)
{
next->nextnode=destroy->nextnode;
}
next=next->nextnode;
}
free(destroy);
}
struct node*createnode(int data) //创建node函数
{
struct node* newnode=(struct node *)malloc(sizeof(struct node));
newnode->data=data;
newnode->nextnode=NULL;
return newnode;
}
[此贴子已经被作者于2016-3-18 23:11编辑过]