单链表的插入(完整版程序c语言实现,以字符串为数据)
来源:互联网 发布:php abstract class 编辑:程序博客网 时间:2024/06/07 13:47
这里的插入主要是针对有序表中插入一个数据,插入后仍然为一个有序表。接下来会给出在链表尾插入,和在链表投插入怎么做
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *next;}ListNode;ListNode *creat(int n){ ListNode *p,*h,*s; int i; if((h=(ListNode*)malloc(sizeof(ListNode)))==NULL) { printf("不能分配内存空间!"); exit(0); } h->name[0] = '\0'; h->next=NULL; p = h; for(i = 0;i<n;i++) {if((s=(ListNode*)malloc(sizeof(ListNode)))==NULL) { printf("不能分配内存空间!"); exit(0); }p->next = s;printf("请输入第%d个人的名字",i+1);scanf("%s",s->name);s->next = NULL;p = s; } return(h);}void printList(ListNode *p){ while(p->next){ p = p->next; printf("%s\n",p->name);}}void reverse(ListNode *p){ ListNode *a,*b,*c; a = p; b = p->next; while(b->next!=NULL) { c=b->next; b->next = a; a = b; b=c; } b->next = a; p->next->next = NULL; p->next=b;}void find(ListNode* head,char *t){ ListNode *p,*s; p =head; while((p->next)&&(strcmp(p->next->name,t))) p = p->next; if(p->next) { printf("找到了!哦耶\n"); } else { printf("没找到,大哭!\n"); }}void Insert(ListNode* head){char t[10];ListNode *p,*s;int i,j;printf("请输入要插入的字符串:");scanf("%s",&t);p = head;j = 0;while(p->next&&strcmp(t,p->next->name)>0){ j++; p = p->next;}if(!strcmp(t,p->next->name)) printf("重复插入,不允许。\n");else{ s = (ListNode*)malloc(sizeof(ListNode)); strcpy(s->name,t); s->next = p->next; p->next = s;}}void main(){ int number; ListNode *head; char t1[80]; char *t2; number = N; head = creat(number); printf("创建好的链表为:\n"); printList(head); //reverse(head); //printf("单链表逆置之后:\n"); //printList(head);//printf("输入要查找的字符串\n"); // gets(t1);//scanf("%s",&t1); //find(head,t1);Insert(head);printList(head);}
运行结果如下:
0 0
- 单链表的插入(完整版程序c语言实现,以字符串为数据)
- 单链表的查找(完整程序 以字符串为数据)
- C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例)
- C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例) .
- 编写一个以C 语言为基础的DSP程序
- 编写一个以C 语言为基础的DSP程序
- C语言写函数实现接收n个字符串,将以某个字符为开头的字符串打印出来。
- C语言字符串替换函数,字符串插入函数的实现
- 约瑟夫环(c语言程序完整版)
- 替换空格(c语言完整版程序)
- C语言实现单链表的简单操作【完整版】
- jdbc连接数据库的7大步骤(以通过jdbc连接实现数据的插入、更新为例)
- C语言实现有序单链表的插入
- 有序单链表的插入 C语言实现
- C语言实现单链表的节点插入(带头结点)
- 【我解C语言面试题系列】013 以单词为单位的翻转字符串
- 单链表插入c语言实现
- C语言程序-判断一个字符串是否为另外一个字符串旋转之后的字符串
- nginx内置变量详解
- C++基础知识(三)—— 常量
- tomcat各目录(文件)作用
- 每个程序员都应该知道的8个Linux命令
- C++基础知识(四)—— 操作符/运算符
- 单链表的插入(完整版程序c语言实现,以字符串为数据)
- Oracle索引小结
- Java的运行原理(转)
- Spring介绍
- Linux内核中的常用宏container_of其实很简单
- 【Spring学习】Bean生命周期
- Hibernate中持久化上下文的flush操作之一COMMIT
- android-R.style
- python远程连接mysql服务器