数据结构—链表的基本操作 子函数的方式

#include<stdio.h>
#include<stdlib.h>

//  创建结构体链表
typedef int TELM;
typedef struct link{    
<pre name="code" class="plain">TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> date1;                                               //数据域</span>
struct students * next; //指针域}stu; // 添加数据函数void *add(){stu *head=NULL;stu *p=NULL;stu *temp=NULL;
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> n;              </span>
printf("请输入数据,为0时退出: ");scanf("%d",&n); while(n!=0){ p=(stu *)malloc(sizeof(stu));p->date1=n;p->next=NULL;if(head==NULL){head=p;}else{ temp->next=p;} temp=p; printf("请输入数据,为0时退出: "); scanf("%d",&n); }return head;}// 修改函数void change(stu *head){stu *p;
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> i;</span>
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> n;</span>
printf("请输入要修改的数据: ");scanf("%d",&i);//初始化指针p=head; while(p!=NULL){if(p->date1==i){printf("请输入新数据 ");scanf("%d",&n);p->date1=n;}p=p->next; }}// 查找函数void search(stu * head){
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> i;</span>
stu *p;int m=1;printf("请输入要查找的数据 ");scanf("%d",&i);p=head;while(p!=NULL){if(p->date1==i){printf("恭喜!存在你查找的数据,它是第个%d数据 \n",m);} p=p->next;m++; } }// 删除函数void del(stu * head){
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> i;</span>
stu *p=NULL;printf("请写出要删除的数据 \n");scanf("%d",&i);p=head;while(1){if(p->next->next){if(p->next->date1==i){p->next=p->next->next;}else{p=p->next;}}else{if(p->next->date1==i)p->next=NULL;break;}}p=head;if(p->date1==i){head=p->next;}}// 输出函数void print(stu *head){ stu *p=head; printf("<-------目前输入的数据有如下------>\n");while(p!=NULL){ printf("%d ",p->date1);p=p->next;}}// 主函数void main(){stu *head=NULL;head=add();print(head);change(head);print(head);search(head);print(head);del(head);print(head);}

转载于:https://my.oschina.net/czyandy/blog/692280

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值