自己写的链表的基本结构和其他功能
来源:互联网 发布:连云港天马网络 编辑:程序博客网 时间:2024/06/05 08:06
#include "stdafx.h"#include<malloc.h>typedef struct Node //链表的结构体{int data;struct Node* next;}NODE,*PNODE;PNODE create(int ); //创建链表void print(PNODE ); //打印输出链表int getMid(PNODE ); //得到链表的初值PNODE ReverseList(PNODE ); //反转链表int main(int argc, char* argv[]){int mid;PNODE L=NULL;L=create(5);print(L);mid= getMid(L) ;printf("中间节点的值是:%d\n",mid);L= ReverseList(L);print(L);return 0;}PNODE create(int n){PNODE head,pnew,ptail;int i;pnew=(PNODE)malloc(sizeof(NODE)); //头结点pnew->data=0; //我这里指定头结点不放数据内容pnew->next=NULL;head=ptail=pnew;for(i=1;i<=n;i++){pnew=(PNODE)malloc(sizeof(NODE)); //创建你要的节点printf("请输入第%d个节点的数据:",i);scanf("%d",&pnew->data);ptail->next=pnew;ptail=pnew;}ptail->next=NULL;return head;}void print(PNODE head ){PNODE p=head; //定义链表指针,指向链表头p=p->next; //因为头结点不是你创建的,所以要指向第一个你创建的节点while(p!=NULL){printf("%d\n",p->data);p=p->next;}}int getMid(PNODE head) //指定一个快指针(一次移动两位)和一个慢指针(一次移动一位),直到快的指向空{ if(head == NULL) return -1; PNODE ptrOneStep = head->next; PNODE ptrTwoStep = head->next; while(ptrTwoStep != NULL && ptrTwoStep->next != NULL) { ptrOneStep = ptrOneStep->next; ptrTwoStep = ptrTwoStep->next->next; } return ptrOneStep->data; } PNODE ReverseList(PNODE head) //链表逆序 http://blog.csdn.net/niuer09/article/details/5961004{ if(head->next == NULL || head->next->next == NULL) { return head; /*链表为空或只有一个元素则直接返回*/ } PNODE t = NULL; PNODE p = head->next; PNODE q = head->next->next; while(q != NULL) { t = q->next; q->next = p; p = q; q = t; } /*此时q指向原始链表最后一个元素,也是逆转后的链表的表头元素*/ head->next->next = NULL; /*设置链表尾*/ head->next = p; /*调整链表头*/ return head; }
0 0
- 自己写的链表的基本结构和其他功能
- 关于IXP2400的基本结构和功能(1)
- 短小精悍的虚拟机:JVM基本结构和功能介绍
- 短小精悍的虚拟机:JVM基本结构和功能介绍
- 自己写的日志框架--linkinLog4j--实现基本的框架功能
- 十进制和其他进制的相互转化(自己写的)
- 自己写的链表
- 自己写的基本滚动条类
- Junit4单元测试 (三) 其他类型的Runner和其他功能
- 自己写的第一个Struts2的小项目,完成了基本的增删改查功能
- 自己写的程序密码功能 ------数字功能
- Jenkins基本结构和功能
- 操作系统的结构和功能
- 冯诺依曼机的结构和功能
- 自己python实现mysql2hive 的表结构功能,在脚本后输入mysql_db,mysql_table,hive_db,hive_table和任意字符
- 功能结构和页面结构的设计
- PHP的其他功能
- xcode的其他功能
- 有用的Python资料
- mysql sql语句大全
- android监听软键盘输入@
- docker:搭建lamp应用
- java写入文件(文件末尾追加)
- 自己写的链表的基本结构和其他功能
- 3.mysql的中文问题,database级操作,表级操作,数据CRUD,分组操作,时间和日期,字符串相关函数,表的约束
- Android EditText的问题
- unitybgmusic
- 4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)
- Servlet 中文乱码问题及解决方案剖析
- Android nomedia 避免图片等资源泄露在系统图库当中
- 5.中文问题(自身,操作系统级别,应用软件的本身),mysql数据库备份
- [AC自动机+dp] hdu 2457 DNA repair