首页 / C语言 / c语言 链表使用示例
c语言 链表使用示例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c语言 链表使用示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3311字,纯文字阅读大概需要5分钟。
内容图文
![c语言 链表使用示例](/upload/InfoBanner/zyjiaocheng/1146/abae2fbe380040c587e72136acf3b9c0.jpg)
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 typedef struct list{ 5struct list *next; 6char name[30];//用户名称 7char addr[50];//地址 8char num[8];//号码 9}user; 10 11void insert(user *h); 12void edit(user *h); 13void del(user *h); 14void S_byName(user *h); 15void S_byNum(user *h); 16void display(user *h); 17 18int main() 19{ 20int flag; 21 user *head=(user *)malloc(sizeof(user)); 22 head->next=NULL; 23while(1) 24 { 25 printf("电话号码目录系统\n"); 26 printf(" 1、添加新电话用户信息\n"); 27 printf(" 2、修改电话用户信息\n"); 28 printf(" 3、删除已有电话用户信息\n"); 29 printf(" 4、根据用户名查询电话信息\n"); 30 printf(" 5、根据电话号码查询用户信息\n"); 31 printf(" 6、显示全部用户信息\n"); 32 printf(" 7、退出\n"); 33 printf("请选择:"); 34 scanf("%d",&flag); 35if(flag==1) 36 insert(head); 37elseif(flag==2) 38 edit(head); 39elseif(flag==3) 40 del(head); 41elseif(flag==4) 42 S_byName(head); 43elseif(flag==5) 44 S_byNum(head); 45elseif(flag==6) 46 display(head); 47elseif(flag==7) 48return0; 49else 50 printf("输入有误,请重新选择!\n"); 51 } 52} 53void insert(user *h) 54{ 55 user *p=(user *)malloc(sizeof(user)); 56 p->next=h->next; 57 h->next=p; 58 printf("请输入新增用户名称(最多30个字):"); 59 scanf("%s",p->name); 60 printf("请输入新增用户的家庭住址(最多50字):"); 61 scanf("%s",p->addr); 62 printf("请输入新增用户的电话号码(8位数):"); 63 scanf("%s",p->num); 64 printf("新用户记录成功添加:%s %s %s\n\n",p->name,p->addr,p->num); 65} 66void edit(user *h) 67{ 68char name[30]; 69int flag=0; 70 user *lh=h->next; 71 printf("输入要修改用户的名称:"); 72 scanf("%s",name); 73while(lh) 74 { 75if(strcmp(name,lh->name)==0) 76 { 77 flag=1; 78 printf("请输入新的名称(30字以内):"); 79 scanf("%s",lh->name); 80 printf("请输入新的地址(50字以内):"); 81 scanf("%s",lh->addr); 82 printf("请输入新的号码(8位):"); 83 scanf("%s",lh->num); 84 printf("用户记录修改成功:%s %s %s\n\n",lh->name,lh->addr,lh->num); 85break; 86 } 87 lh=lh->next; 88 } 89if(!flag) 90 printf("不存在这样的用户\n\n"); 91} 92void S_byName(user *h) 93{ 94char name[30]; 95int flag=0; 96 user *lh=h->next; 97 printf("输入要查找的用户名称:"); 98 scanf("%s",name); 99while(lh) 100 { 101if(strcmp(name,lh->name)==0) 102 { 103 flag=1; 104 printf("用户信息为:%s %s %s\n\n",lh->name,lh->addr,lh->num); 105break; 106 } 107 lh=lh->next; 108 } 109if(!flag) 110 printf("用户名不存在\n\n"); 111} 112void S_byNum(user *h) 113{ 114char num[30]; 115int flag=0; 116 user *lh=h->next; 117 printf("输入要查找的电话号码:"); 118 scanf("%s",num); 119while(lh) 120 { 121if(strcmp(num,lh->num)==0) 122 { 123 flag=1; 124 printf("用户信息为:%s %s %s\n\n",lh->name,lh->addr,lh->num); 125break; 126 } 127 lh=lh->next; 128 } 129if(!flag) 130 printf("找不到匹配的号码\n\n"); 131} 132void display(user *h) 133{ 134 user *lh=h->next; 135int i=1; 136while(lh) 137 { 138 printf("第%d条用户信息:%s %s %s\n",i,lh->name,lh->addr,lh->num); 139 lh=lh->next; 140 i++; 141 } 142 printf("\n"); 143} 144void del(user *h) 145{ 146char name[30]; 147int flag=0; 148 user *lh=h; 149 printf("输入要删除的用户名称:"); 150 scanf("%s",name); 151while(lh->next) 152 { 153if(strcmp(name,lh->next->name)==0) 154 { 155 flag=1; 156 printf("删除用户成功:%s %s %s\n\n",lh->next->name,lh->next->addr,lh->next->num); 157 lh->next=lh->next->next; 158break; 159 } 160 lh=lh->next; 161 } 162if(!flag) 163 printf("用户名不存在\n\n"); 164 }
原文:http://www.cnblogs.com/yll-sww/p/4134305.html
内容总结
以上是互联网集市为您收集整理的c语言 链表使用示例全部内容,希望文章能够帮你解决c语言 链表使用示例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。