我考虑了一天一夜,还没头绪。目前程序的编写还不太成熟,上不了桌面。呵呵 ̄ ̄
最迟明天中午,我将我的呈上...
诸位好兄弟,把你们对链表的体会写一下,我感到有点茫然阿。
明天中午见了
如果你学过数据结构写起来应该不难的
1.先把链表的结构写出来
typedef struct node
{int data;
struct node *next;
}*Lnode;
2.建立链表
//比如想储存成这样 1->2->3->4->NULL
Lnode head,p,q;
head->next=NULL;
p=head;
{for(int i=1;i<5;i++)
q=(Lnode)malloc(sizeof(struct node));//分配空间嘛
q->data=i;
q->next=p->next
p->next=q;
p=q;
}
3.输出链表
p=head;
while(p!=NULL)
{printf("%d->",p->data);
p=p->next;
}
printf("NULL\n");
4.查找
int num;
scanf("%d",&num);
p=head;
while(p!=NULL)
{if(p->data==num)
printf("查抄成功");
p=p->next;
}
printf("查找失败");
5.删除元素
scanf("%d",&num);
p=head;
if(num==p->data)
{head->next=p->next;
free(p);}
else{
while(p!=NULL)
{if(num==p->next->data)//找到
p->next=p->next->next;//删除
p=p->next;
}
}
//只是简单的形容了一下 你分析下就自己好好写一个吧
如果你学过数据结构写起来应该不难的
1.先把链表的结构写出来
typedef struct node
{int data;
struct node *next;
}*Lnode;
2.建立链表
//比如想储存成这样 1->2->3->4->NULL
Lnode head,p,q;
head->next=NULL;
p=head;
{for(int i=1;i<5;i++)
q=(Lnode)malloc(sizeof(struct node));//分配空间嘛
q->data=i;
q->next=p->next
p->next=q;
p=q;
}
3.输出链表
p=head;
while(p!=NULL)
{printf("%d->",p->data);
p=p->next;
}
printf("NULL\n");
4.查找
int num;
int flag=0;
scanf("%d",&num);
p=head;
while(p!=NULL)
{if(p->data==num)
{
printf("查抄成功");//可以跳出,并且设置一标记,表示已经查找到了.该标记作为后面输出查找失败的条件
p=p->next;
flag++; //该标记即可做为查找成功的标记,也可以表示查找成功的个数(把break去掉).
break;
}
if(flag==0)
{
printf("查找失败");
}
5.删除元素
scanf("%d",&num);
p=head;
if(num==p->data)
{head->next=p->next;
free(p);}
else{
while(p!=NULL)
{if(num==p->next->data)//找到
p->next=p->next->next;//删除,也应该释放该结点
p=p->next;
}
}
//只是简单的形容了一下 你分析下就自己好好写一个吧
scanf("%d",&num);
node *pre,*p;
pre=NULL;
p=head;
while(p!=NULL)
{
if(p->info==num&&pre==NULL)//处理头结点
{
head=head->next;
free(p);
p=head;
}
else
if(p->info==num) //处理中间结点
{
pre->next=p->next;
free(p);
p=pre->next;
}
else
{
pre=p;
p=pre->next;
}
}
return(head);