网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月07日漏签0天
c语言吧 关注:798,837贴子:4,355,752
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回c语言吧
>0< 加载中...

能不能求个大神帮忙给这段代码加个注释

  • 只看楼主
  • 收藏

  • 回复
  • 我只爱吃
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct node{
int data;
struct node *next;
}
LinkList;
LinkList * create()
{
int t;
LinkList *head,*s,*r;
head=(LinkList *)malloc(sizeof(LinkList));
r=head;
printf("请输入数字序列产生的单链表,以-1结束。\n");
scanf("%d",&t);
while(t!=-1)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=t;
r->next=s;
r=s;
scanf("%d",&t);
}
r->next=NULL;
printf("链表创建完毕。");
return head;
}
void output(LinkList *head)
{
LinkList *p;
printf("\n链表中的结点值为:");
for(p=head->next;p!=NULL;p=p->next)
{
printf("%4d",p->data);
}
printf("\n");
}
void searchByValue(LinkList *head)
{
int x,j=1;
LinkList *p;
if(head->next==NULL)
{
printf("链表为空!");
return;
}
printf("\n请输入要查找的结点值x(1--n): ");
scanf("%d",&x);
p=head->next;
while(p)
{
if(p->data==x)
{
printf("第%4d号的结点为%2d",j,x);
return;
}
p=p->next;
j++;
}
printf("\n 结点未找到!");
}
void deleteByValue(LinkList *head)
{
int x;
LinkList *p,*q;
if(head->next==NULL)
{
printf("链表为空!");
return;
}
printf("\n请输入要删除的结点值x(1--n): ");
scanf("%d",&x);
q=head;
p=head->next;
while(p)
{
if(p->data==x) break;
q=p;
p=p->next;
}
if(p==NULL)
printf("\n 结点未找到!");
else
{
q->next=p->next;
free(p);
printf("\n 结点被删除!");
}
}
void insertNode(LinkList *head)
{
int x,i,j=0;
LinkList *p,*s;
printf("\n 请输入新结点要添加的位置i: ");
scanf("%d",&i);
p=head;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(p==NULL||i<1)
{
printf("\n位置无效!");
return;
}
printf("\n 请输入新结点的位置x: ");
scanf("%d",&x);
s=(LinkList *)malloc(sizeof(LinkList));
s->data=x;
s->next=p->next;
p->next=s;
printf("\n 插入成功!");
}
void menu()
{
system("cls");
printf("\n");
printf("\n");
printf("|--------------------------------|\n");
printf("| 请输入选项编号(0 ~ 5): |\n");
printf("|--------------------------------|\n");
printf("| 1--建立链表 |\n");
printf("| 2--查找单链表中值为x的结点 |\n");
printf("| 3--删除单链表中值为x的结点 |\n");
printf("| 4--添加新的结点 |\n");
printf("| 5--输出链表 |\n");
printf("| 0--退出 |\n");
printf("|--------------------------------|\n");
printf("\n");
printf("\n");
printf(" 请 选 择 : ");
}
void main()
{
int selection;
LinkList *head;
do
{
if(selection==0)break;
menu();
printf(" ");
scanf("%d",&selection);
switch(selection)
{
case 1:head=create();break;
case 2:searchByValue(head);break;
case 3:deleteByValue(head);break;
case 4:insertNode(head);break;
case 5:output(head);break;
case 0:break;
default:printf("\n %d为非法选项!\n",selection);
}
printf("按任意键继续......");
getchar();getchar();
}
while(1==1);
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示