基本送分的!
typedef struct Node{
DataType data;
struct Node *next;
}ListNode,*LinkList;
初始化我能想到要传递指针的指针才能修改头接点的内容
void InitList(LinkList *head)
{
if((*head=(LinkList)malloc(sizeof(ListNode)))==NULL)
exet(0);
(*head)->next=NULL;
}
插入操作
int InsertList(LinkList head,int i,DataType e)
{
ListNode *p,*pre;
int j;
pre=head;
j=0;
while(pre->next!=NULL&&j<i=1)
{
pre=pre->next;
j++;
}
if(!pre)
{
printf("插入地方不对(大家不要胡思乱想啊)");
return 0;
}
if((p=(ListNode*)malloc(sizeof(ListNode)))==NULL)
exet(0);
p->data=e;
p->next=pre->next;
pre->next=p;
return 1;
}
请问插入操作为什么不传递指针的指针呢?不也是需要改变原来的内容吗?删除操作同样为什么不传递指针的指针?
求大家帮忙分析分析@小弟感激不尽!
[解决办法]
这要看你是什么思想了,指针的指针,指针都可以的
[解决办法]
谢谢给分。
我从来都是,是哦回帖不看帖
[解决办法]
- C/C++ code
void InitList(LinkList *head){if((*head=(LinkList)malloc(sizeof(ListNode)))==NULL)exet(0);(*head)->next=NULL;}
[解决办法]
为什么要传指针的指针呢?你并不修改头指针里面保存的地址,你只需要malloc一个节点,然后将这个节点的地址赋值给尾节点里面的next指针就可以了,在这个过程中你并不修改什么东西
[解决办法]
还有指针用的是'->',具体对象是用'.'的
[解决办法]
插入的时候不需要修改head这个结构体指针,只是修改了head指向的结构体的next字段。所以不需要指针。
[解决办法]
只为学习,不为接分。
[解决办法]