单向链表
来源:互联网 发布:网络消费者的心理特征 编辑:程序博客网 时间:2024/06/05 02:01
单向链表,双向也是类似
实现的主体是node,这个typedef还是很讨厌,不过还是写出来了,着这里没有什么用。
可以建立一个xxx.hpp,整体放进去(把main拿掉),方便需要的时候调用。
// 计算表达式.cpp : 定义控制台应用程序的入口点。// 单向链表// #include "stdafx.h"#include <stdio.h>#include <stdlib.h>typedef struct _node{ int num; struct _node *next;} node;node* prtLLst(node *p);node* create();void freeLst(node *p);int main(){ node *linkHead = NULL; linkHead = create(); prtLLst(linkHead); freeLst(linkHead); return 0;}node *create(){ node *p1 = NULL; node *last = NULL; node *head = NULL; int num; printf("enter number:"); do{ scanf("%d",&num); if (num != -1){ p1 = (node*)malloc(sizeof(node)); // 申请内存,也可以使用p1 = new node,但是要改成free释放 p1->num = num; if (head == NULL) head = p1; // 指针相等:指向同一片内存。所以对任意一者操作,另一者的使用也会受牵连,毕竟是同一个内存 else last->next = p1; // 本质上是head这个索引下的链表的变化,把P1这个结构放在最后面 last = p1; // last 向下指一位,保证last是最后一位 } }while(num != -1); last->next = NULL; return head;}node* prtLLst(node *p){ if(p != NULL){ printf("%d ",p->num);if(p->next != NULL)return prtLLst(p->next);elsereturn false;}}void freeLst(node *p){ // 貌似不好用迭代的写法。。先这样,回头再看看 node *q = NULL; while(p != NULL){printf("free%d ",p->num); q = p; p = p->next; free(q); }}
0 0
- 单向链表
- 单向链表倒序
- 单向链表
- 单向链表逆转
- 逆转单向链表
- 单向链表反转
- 单向链表
- 单向链表(ZT)
- 反转单向链表
- 单向链表反转
- 单向链表
- 创建单向链表
- 单向链表反转
- 单向链表
- 单向链表
- 单向链表
- 单向链表
- C++ 单向链表
- 洛谷P1801 黑匣子
- c++读取txt文件
- 表达式字符数字分割(还有改进)
- Python Anaconda简介及安装
- 带问号的url重定向和参数保留--nginx rewrite
- 单向链表
- 基于query语句解析mysql工作原理
- Filter需要配置多个url-pattern
- linux jar命令找不到 -bash: jar: command not found
- 女子一觉醒来床边现1米长蛇 盘成一团正吐信子
- iOS开发之Xcode8打印台[NWConcrete_nw_endpoint_proxy cancelWithHandler:forced:]
- 物理内存与线性地址的关系
- 蓝桥杯-01字串(基础练习)
- 《算法》第一章——判断两个整数是否互质