C语言中关于链表的一些操作
2017-06-13 12:27
465 查看
struct data {int num; struct data *next; }; /* 创建链表 */ struct data *creat() {struct data *head=NULL,*p,*q; p=q=malloc(sizeof(struct data)); scanf("%d",&p->num); while(p->num) {if(head==NULL) head=p; else {q->next=p; q=p; } p=malloc(sizeof(struct data)); scanf("%d",&p->num); } q->next=NULL; return head; } /* 插入结点 */ struct data *insert(struct data *head,int num) {struct data *p,*q; p=malloc(sizeof(struct data)); p->num=num; if(p->num<head->num) {p->next=head; head=p; } else {q=head; while(q->next&&p->num>q->next->num) q=q->next; p->next=q->next; q->next=p; } return head; } /* 删除结点 */ struct data *del(struct data *head,int num) {struct data *p; if(num==head->num) head=head->next; else {p=head; while(p->next&&num!=p->next->num) p=p->next; if(p->next) p->next=p->next->next; } return head; } /* 链表反序 */ struct data *invert(struct data *head) {struct data *p=head,*q=NULL; while(p) {head=p; p=p->next; head->next=q; q=head; } return head; } /* 输出链表 */ void print(struct data *head) {while(head) {printf("%d ",head->num); head=head->next; } printf("\n"); }
相关文章推荐
- C语言中,关于&,^,!布尔代数,移位操作的一些巧妙算法
- C语言 链表的一些操作
- 关于链表的一些简单操作
- C 关于链表的一些操作
- 【C语言】链表的一些简单操作
- 关于C语言的指针、链表的原理和各类操作
- 关于数据结构->链表的一些基本操作
- 关于C语言中文件操作的一些知识(小白刚体验)
- 关于链表的一些操作(持续更新中)
- 关于链表的一些重要操作(Important operations on a Linked List)
- 尹成老师,关于链表的一些操作(C)
- 剑指offer关于链表的一些操作(java)
- 关于c语言的一些文件操作函数
- 关于c语言链表的操作
- C语言中关于文件操作的一些用法
- 关于链表操作编程实现的一些总结
- C语言---关于链表的各项操作总结-----单向链表
- 关于C语言的指针、链表的原理和各类操作
- 关于链表的创建和对链表的操作--C语言
- 关于C语言的文件型指针和移位操作中的一些有趣问题的探讨