数据结构之C语言版单链表操作
2021/9/30 6:11:19
本文主要是介绍数据结构之C语言版单链表操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# include <stdio.h> # include <malloc.h> typedef struct Node{ int data; struct Node * next; } Node ,* PNODE; PNODE create_list(); void show_list(PNODE); int size_list(PNODE); void sort_list(PNODE); bool insert_list(PNODE,int,int); int delete_list(PNODE,int,int *); int main(void){ PNODE pHead = create_list(); show_list(pHead); int size = size_list(pHead); printf("\n"); printf("链表对应的长度是:%d\n",size); // 然后来进行排序 sort_list(pHead); show_list(pHead); printf("\n"); insert_list( pHead,5,555); show_list(pHead); printf("------------------\n"); int i=-1; delete_list(pHead,3,&i); show_list(pHead); printf("对应的值是:%d\n",i); return 0; } PNODE create_list(){ PNODE pHead = (PNODE)malloc(sizeof(Node)); PNODE tmp = pHead; printf("请输入链表的长度的:\n"); int len; scanf("%d",&len); int i,val; for(i=0;i<len;i++){ printf("请输入第%d个元素的值:\n",i+1); scanf("%d",&val); PNODE pNew = (PNODE)malloc(sizeof(Node)); pNew->data=val; pNew->next=NULL; tmp->next=pNew; tmp=pNew; } return pHead; } void show_list(PNODE pHead){ PNODE p = pHead->next; while(NULL!=p){ printf("%d ",p->data); p = p->next; } } int size_list(PNODE pHead){ int i = 0; PNODE p = pHead->next; while(NULL!=p){ i++; p = p->next; } return i; } void sort_list(PNODE pHead){ int i,j,k; int size = size_list(pHead); PNODE p,q; for(i=0,p=pHead->next;i<size-1;i++,p=p->next){ for(j=i+1,q=p->next;j<size;j++,q=q->next){ if(p->data>=q->data){ k= p->data; p->data=q->data; q->data=k; } } } } bool insert_list(PNODE pHead,int pos,int val){ PNODE p = pHead; int i = 0; while(NULL!=p&&i<pos-1){ p=p->next; i++; } if(i>pos-1||p==NULL){ return false; } PNODE t = (PNODE)malloc(sizeof(Node)); t->data=val; t->next=p->next; p->next=t; return true; } int delete_list(PNODE pHead,int pos,int * val){ PNODE p = pHead; int i = 0; while(NULL!=p&&i<pos-1){ p=p->next; i++; } if(i>pos-1||p==NULL){ return false; } PNODE tmp = p->next; *val = tmp->data; p->next = tmp->next; free(tmp); return *val; }
这篇关于数据结构之C语言版单链表操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升