链表的增删查找
来源:互联网 发布:淘宝刷手会被坐牢吗 编辑:程序博客网 时间:2024/05/16 10:19
#include <stdio.h>#include<malloc.h>typedef struct Node{int val;struct Node * pNext;}Node,* pNode;pNode creat_list();void trevel_list(pNode);void sort_list(pNode);void insert_list(pNode,int,int);int length_list(pNode);int delete_list(pNode,int);void search_list(pNode,int);void main(){pNode pHead = creat_list();printf("输入后信息如下:\n");trevel_list(pHead);printf("\n排序之后如下:\n");sort_list(pHead);trevel_list(pHead);printf("\n链表长度位:\n");printf("%d",length_list(pHead));printf("\n删除第三个数字为:\n");printf("%d",delete_list(pHead,3));printf("\n删除之后如下:\n");trevel_list(pHead);printf("\n删除之后链表长度为:\n");printf("%d",length_list(pHead));printf("\n在第5个位置插入一个节点\n");insert_list(pHead,5,15);printf("\n插入之后如下:\n");trevel_list(pHead);search_list(pHead,15);}pNode creat_list(){pNode pHead,pTail,pNew;int len,i;scanf("%d",&len);pHead = (pNode)malloc(sizeof(Node));pTail = pHead;pTail->pNext = NULL;for (i = 0; i < len; i++){pNew = (pNode)malloc(sizeof(Node));scanf("%d",&pNew->val);pTail->pNext=pNew;pTail = pNew;pTail->pNext = NULL;}return pHead;}void trevel_list(pNode pHead){pNode t = pHead->pNext;while(t != NULL){printf("%d ",t->val);t = t->pNext;}}void sort_list(pNode pHead){pNode p,q;int i,j,temp,len;len=length_list(pHead);for(i=0,p=pHead->pNext;i<len-1;i++,p=p->pNext){for(j=i+1,q=p->pNext;j<len;j++,q=q->pNext){if(p->val > q->val){temp = p->val;p->val = q->val;q->val = temp;}}}}void insert_list(pNode pHead,int pos,int val){ pNode p,t; int len = length_list(pHead); if(pos>len) printf("插入失败!!!\n");else {p = pHead->pNext;pos--;while(pos--){p = p->pNext;}t = (pNode)malloc(sizeof(Node));t->val = val;t->pNext = p->pNext;p->pNext = t;}}int delete_list(pNode pHead,int pos){int i,val,len;pNode t,p=pHead;len = length_list(pHead);if(pos>len)printf("删除失败!!!\n");else{pos--;while(pos--){p=p->pNext;}t = p->pNext;p->pNext = t->pNext;val = t->val;free(t); }return val;}int length_list(pNode pHead){int len = 0;pNode t = pHead->pNext;while(t != NULL){len++;t = t->pNext;}return len;} void search_list(pNode pHead, int val) { pNode p = pHead->pNext; int n=0;while(p!=NULL){n++;if(p->val == val)printf("\n链表第%d节点有%d这个值\n",n, val);p=p->pNext;}if(!n)printf("未找到!!!\n"); }
0 0
- 链表的增删查找
- 链表的增删、查找以及逆序
- sqlite3 的增删查找
- 数组的增删查找操作
- 链表的增删
- 简易的通信录-完成增删查找
- 链表的增删改
- 顺序表的增删查改、二分查找、冒泡和快速排序
- 用户名查找和增删
- 编写一个电话簿,可以实现增删查找的功能
- C语言简单操作MYSQL数据库的增删查找
- 链表的增删排序等操作
- 链表的增删改查
- C链表的增删查改
- 链表的增删改查
- 链表的增删改查
- 链表的增删改查
- 链表的增删改查
- ZOJ3947-Very Happy Great BG
- 567. Permutation in String Medium
- 项目应用中的卡尔曼滤波
- 感知哈希算法(Perceptual hash algorithm) 以图搜图
- 栈实现队列,队列实现栈
- 链表的增删查找
- Goroutine 的调度
- 不求甚解之自制编程语言
- 2055 到淄博旅游
- 在启动kafka的时候报错
- Eclipse中配置Tomcat
- const test
- 部署Python Web项目到CentOS服务器踩过的坑
- 毕业回想,反思迷茫