单链表各种操作
来源:互联网 发布:简单的图像分割算法 编辑:程序博客网 时间:2024/06/16 10:51
终于自己写出了关于单链表的操作,而不是看别人的,现在编程越来越有感觉了,自己编更好,别人的还看不懂,不知道他们的思路是什么
单链表的建立,插入,删除,排序,求长度。插入是按大小顺序插入的。
#include <stdio.h>#include <stdlib.h>struct node{int data;node * next;};void creat(node * );void print(node * );int length(node *);void insert(node *, int );void del(node *, int);void sort(node *,int);void main(){node * head;int val=0;int lengt=0;head =(node *)malloc(sizeof(node));creat(head);printf("输入的数据为\n");print(head);printf("%链表长度为:");lengt=length(head);printf("%d\n",lengt); sort(head,lengt);printf("排序后打印结果\n");print(head);printf("输入插入的数字");scanf("%d",&val);printf("val=%d\n",val);insert(head,val);printf("插入后打印结果\n");print(head);printf("输入删除的数字");scanf("%d",&val);del(head,val);printf("删除后打印结果\n");print(head);}void creat (node * head){ node * a=(node*) malloc(sizeof(node)); head->next=a; printf("输入数字, 数字0结束\n"); scanf("%d",&a->data); if(a->data==0) { a->next=NULL; return ; } creat(a);}void sort(node* a,int len) //交换数据,而不是指针{node *p,*q;int temp;for(int i=0;i<len;i++){ p=a; q=p->next;while(q->next->data!=0) {if (p->next->data>q->next->data){temp=p->next->data;p->next->data=q->next->data; q->next->data=temp;}p=p->next;q=q->next; } }}void insert(node * a, int val) // 按大小顺序插入{ node * p; p=a; node * b= (node *) malloc(sizeof(node)); while (p->next->data<val&& p->next->data!=0) p=p->next; b->next=p->next; p->next=b; b->data =val;}void del(node * a, int val){ node * p; p=a; while (p->next->data!=val) { if(p->next->data==0) { printf("没有找到此数\n"); return; } p=p->next; } p->next=p->next->next; }void print(node* a){while (a->next!=NULL){a=a->next;if(a->next!=NULL)printf("%d->",a->data);}printf("\n");}int length(node * a){ int n=0; while(a->next!=NULL) { a=a->next; n++; } n=n-1; return n;}
对于其他的数据结构就是struct的结果不同吧
- 单链表的各种操作
- 单链表的各种操作
- 单链表各种操作
- 单链表的各种操作
- 单链表的各种操作
- 单链表的各种操作
- 单链表的各种操作
- 单链表的各种操作
- 单链表的各种操作
- 单链表的各种操作
- 数据结构单链表的各种操作
- C语言实现单链表的各种操作
- c语言单链表的各种操作<未完>
- 单链表的模版类及其各种操作
- c++实现单链表的各种操作
- 单链表的各种操作 笔试 面试
- 单链表的创建及各种操作
- 单链表各种操作,VS2013+番茄插件写着真爽
- java 环境变量的设置
- 富士莱 windows 7 pad
- 硬件逻辑设计方法的教学思考
- led驱动(混杂设备)
- vb透明控件窗体不透明函数
- 单链表各种操作
- mFileTracker : error FTK1011
- 消除和恢复快捷方式小箭头
- 新建快捷方式时禁止添加“快捷方式”四个字
- java百科
- 导致ASP.NET站点自动重启的原因
- 16. 3. 5. 缩放一个Object Scaling an object
- 面试题--用两个栈实现一个队列
- 十年造才能造就一程序员