能不能给个典型的例子?

slient_1985 2005-04-18 12:17:53
如题,是关于c语言实现链表的例子,急!
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
slient_1985 2005-04-18
  • 打赏
  • 举报
回复
思想是有的,可是就是在实现的时候有问题,因为下午要上机,以前的c语言没有怎么实践,所以找例子也不知道哪种是典型的。
帮帮忙阿~~~`
v41dugu 2005-04-18
  • 打赏
  • 举报
回复
基本的思想要自己去体会,然后自然就有自己的想法了,你自己就会了
v41dugu 2005-04-18
  • 打赏
  • 举报
回复
看书嘛
slient_1985 2005-04-18
  • 打赏
  • 举报
回复
在等待中
answerooo 2005-04-18
  • 打赏
  • 举报
回复
是不是最基本的链表操作啊
还是自己做的好
Q19830409 2005-04-18
  • 打赏
  • 举报
回复
我也不知道你想知道连表的啥?是查找,插入还是删除操作,是合并,还是最基本的创建
Q19830409 2005-04-18
  • 打赏
  • 举报
回复
晕自己一搜那么多还这样问啊晕
kobefly 2005-04-18
  • 打赏
  • 举报
回复
题目:创建一个链表。

1.程序分析:           

2.程序源代码:

/*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{
 int data;
 struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{
 link ptr,head;
 int num,i;
 ptr=(link)malloc(sizeof(node));
 ptr=head;
 printf("please input 5 numbers==>\n");
 for(i=0;i<=4;i++)
 {
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
else ptr=ptr->next;
 }
 ptr=head;
 while(ptr!=NULL)
 {
printf("The value is ==>%d\n",ptr->data);
tr=ptr->next;
 }
}

【程序73】

题目:反向输出一个链表。   

1.程序分析:

2.程序源代码:

/*reverse output a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{
 int data;
 struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{
 link ptr,head,tail; 
 int num,i;
 tail=(link)malloc(sizeof(node));
 tail->next=NULL;
 ptr=tail;
 printf("\nplease input 5 data==>\n");
 for(i=0;i<=4;i++)
 {
scanf("%d",&num);
ptr->data=num;
head=(link)malloc(sizeof(node));
head->next=ptr;
ptr=head;
 }
 ptr=ptr->next;
 while(ptr!=NULL)
 { printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
 }
}



【程序74】

题目:连接两个链表。

1.程序分析:

2.程序源代码:

#include "stdlib.h"
#include "stdio.h"
struct list
{
 int data;
 struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{
 if (tmp==NULL) /*delete first node*/
return pointer->next;
 else
 {
if(tmp->next->next==NULL)/*delete last node*/
 tmp->next=NULL;
else /*delete the other node*/
 tmp->next=tmp->next->next;
return pointer;
 }
}
void selection_sort(link pointer,int num)
{
 link tmp,btmp;
 int i,min;
 for(i=0;i<num;i++)
 {
tmp=pointer;
min=tmp->data;
btmp=NULL;
while(tmp->next)
{
 if(min>tmp->next->data)
 {
  min=tmp->next->data;
  btmp=tmp;
 }
 tmp=tmp->next;
}
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
 }
}
link create_list(int array[],int num)
{
 link tmp1,tmp2,pointer;
 int i;
 pointer=(link)malloc(sizeof(node));
 pointer->data=array[0];
 tmp1=pointer;
 for(i=1;i<num;i++)
 {
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
 }
 return pointer;
}
link concatenate(link pointer1,link pointer2)
{
 link tmp;
 tmp=pointer1;
 while(tmp->next)
tmp=tmp->next;
 tmp->next=pointer2;
 return pointer1;
}
void main(void)
{
 int arr1[]={3,12,8,9,11};
 link ptr;
 ptr=create_list(arr1,5);
 selection_sort(ptr,5);
}

kobefly 2005-04-18
  • 打赏
  • 举报
回复
题目:创建一个链表。

1.程序分析:           

2.程序源代码:

/*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{
 int data;
 struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{
 link ptr,head;
 int num,i;
 ptr=(link)malloc(sizeof(node));
 ptr=head;
 printf("please input 5 numbers==>\n");
 for(i=0;i<=4;i++)
 {
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
else ptr=ptr->next;
 }
 ptr=head;
 while(ptr!=NULL)
 {
printf("The value is ==>%d\n",ptr->data);
tr=ptr->next;
 }
}

【程序73】

题目:反向输出一个链表。   

1.程序分析:

2.程序源代码:

/*reverse output a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{
 int data;
 struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{
 link ptr,head,tail; 
 int num,i;
 tail=(link)malloc(sizeof(node));
 tail->next=NULL;
 ptr=tail;
 printf("\nplease input 5 data==>\n");
 for(i=0;i<=4;i++)
 {
scanf("%d",&num);
ptr->data=num;
head=(link)malloc(sizeof(node));
head->next=ptr;
ptr=head;
 }
 ptr=ptr->next;
 while(ptr!=NULL)
 { printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
 }
}



【程序74】

题目:连接两个链表。

1.程序分析:

2.程序源代码:

#include "stdlib.h"
#include "stdio.h"
struct list
{
 int data;
 struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{
 if (tmp==NULL) /*delete first node*/
return pointer->next;
 else
 {
if(tmp->next->next==NULL)/*delete last node*/
 tmp->next=NULL;
else /*delete the other node*/
 tmp->next=tmp->next->next;
return pointer;
 }
}
void selection_sort(link pointer,int num)
{
 link tmp,btmp;
 int i,min;
 for(i=0;i<num;i++)
 {
tmp=pointer;
min=tmp->data;
btmp=NULL;
while(tmp->next)
{
 if(min>tmp->next->data)
 {
  min=tmp->next->data;
  btmp=tmp;
 }
 tmp=tmp->next;
}
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
 }
}
link create_list(int array[],int num)
{
 link tmp1,tmp2,pointer;
 int i;
 pointer=(link)malloc(sizeof(node));
 pointer->data=array[0];
 tmp1=pointer;
 for(i=1;i<num;i++)
 {
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
 }
 return pointer;
}
link concatenate(link pointer1,link pointer2)
{
 link tmp;
 tmp=pointer1;
 while(tmp->next)
tmp=tmp->next;
 tmp->next=pointer2;
 return pointer1;
}
void main(void)
{
 int arr1[]={3,12,8,9,11};
 link ptr;
 ptr=create_list(arr1,5);
 selection_sort(ptr,5);
}

c_nestor 2005-04-18
  • 打赏
  • 举报
回复
s s随便搜索都有一大堆吧

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧