标题:指向指针的指针在链表的应用?
只看楼主
笨啊!
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-10-15
 问题点数:0 回复次数:0 
指向指针的指针在链表的应用?
这个程序在main 函数处有问题,主要是我搞不清指向指针的指针在链表中的用法,尤其在main函数中如何引用
#include "stdio.h"
#include<malloc.h>

typedef struct node {int data;
             struct node *link;
             }NODE;                            //构造自定义结点。

NODE *create_link_list(int n)                //创建为n长度新链表
{int i;
NODE *head,*p,*q;
if (n==0)return(NULL);

head=(NODE*)malloc(sizeof(NODE));
p=head;
printf("\nenter linklist data:\n");
for(i=1;i<n;i++)
 {scanf("%d",&(q->data));                
  q=(NODE*)malloc(sizeof(NODE));
  p->link=q;
  p=q;
 }
  scanf("%d",&(q->data));
  p->link=NULL;
  getchar();
  return(head);
}

int link_del(NODE **head,int i,int a)            //删除链表结点
{int j;
 NODE *p,*q,*b;
 q=*head;
 if(q==NULL)return(1);
 if(i==0&&a==0)                                    //删除头结点
   {q=*head;
    *head=q->link;
    //*head=b->link;
    free(q);
    //free(b);
    return(0);
   }
 j=0;p=*head;                                    //删除非头结点
 while(++j<i&&p!=NULL)
   p=p->link;
 if(i<0||j<i)return(1);
 else
  {q=p->link;
   //b=p->link;
   p->link=q->link;
   //p->link=b->link;
   free(q);
   //free(b);
   return(0);
  }
}


void main()
{ int i,n,a;
  NODE **start,*temp;
  //n=6;
  start=create_link_list(n);
  printf("\nenter delete NODE Num:\n");
  scanf("%d,%d",&i,&a);
  n=link_del(*start,i,a);

  temp=start;
  printf("\nresult:\n");

  while(temp->link!=NULL)
    {printf("%d  ",temp->data);
     temp=temp->link;
     }
     printf("%d  \n",temp->data);
     getch();
}
搜索更多相关主题的帖子: 链表 指针 应用 
2008-11-01 15:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-241865-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.189942 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved