自己写的一个关于链表的插入删除的操作,请高手们看看有哪里不妥。
都没有人啊。[ 本帖最后由 zhanglei_317 于 2007-11-28 16:39 编辑 ] typedef struct Node
{
int data;
Node *next; /*这个地方要改成 struct Node *next*/
}Lnode,*LinkList; 所有用Node定义的变量,全改成Lnode 把main函数的字符变量tem写在while循环的外面 是tmp,写错了 Lnode *Delete(Lnode *head,int DelNum) /*这里DelNum作为参数传给Delete函数*/
{
Lnode *p6,*p7;
p6 = NULL;
p7 = NULL;
p6 = (LinkList)malloc(sizeof(Lnode));
p7 = (LinkList)malloc(sizeof(Lnode));
printf("please input the deletenumber:");
scanf("%d",&DelNum); /*这里要scanf干嘛?*/
p6 = head;
if (head == NULL)
{
printf("the list is null\n");
}
else
{
p6 = head;
while (DelNum != p6->data && p6 ->next !=NULL )
{
p7 = p6;
p6 = p6 ->next ;
}
if (DelNum == p6->data )
{
if(p6 == head)
{
head = p6->next ;
}
else
{
p7->next = p6->next ;
}
}
else
{
printf("no this number!\n");
}
}
return head;
} case 5:
{
printf("输入要删除的节点\n");/*这句是我加的*/
scanf("%d",&DelNum);/*这句是我加的*/
head = Delete(head,DelNum);
view(head);
break;
} Lnode *Insertmid(Lnode *head)
{
int i,j=1; /*这两个变量的定义我把它们提前了,原来是在p5=NULL后面的*/
Lnode *p4,*p5;
p4 = NULL;
p5 = NULL; 改过这些基本上就OK了
页:
[1]