头插法/尾插法建立线性链表
来源:互联网 发布:mysql 图片 编辑:程序博客网 时间:2024/05/20 19:47
头插法
#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct Node{ElemType data;struct Node *next;}Node, *LinkList;LinkList CreateFromHead(){LinkList L;Node *s;char c;int flag = 1;L = (LinkList)malloc(sizeof(Node));L->next = NULL;while(flag){c = getchar();if(c != '#'){s = (Node*)malloc(sizeof(Node));s->data = c;s->next = L->next;L->next = s;}else{flag = 0;}}return L;}int main(){LinkList L;Node *p;L = CreateFromHead();p = L->next;while(p != NULL){printf("%c\n",p->data);p = p->next;}return 0;}
尾插法
#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct Node{ElemType data;struct Node *next;}Node, *LinkList;LinkList CreateFromTail(){LinkList L;char c;Node *r, *s;int flag = 1;L = (Node*)malloc(sizeof(Node));L->next = NULL;r = L;while(flag){c = getchar();if(c != '#'){s = (Node *)malloc(sizeof(Node));s->data = c;r->next = s;r = s;}else{flag = 0;r->next = NULL;}}return L;}int main(){LinkList L;Node *p;L = CreateFromTail();p = L->next;while(p != NULL){printf("%c\n",p->data);p = p->next;}return 0;}
可以使用VLD检测内存泄漏问题:
https://vld.codeplex.com/
#include <iostream>#include <vld.h>using namespace std;#define MAX_LEN 100typedef struct Node{int data;Node *next;}Node, *PNode;//头插法void create1(PNode &l){Node *s = NULL;for (int i = 1; i <= 5; i++){s = new Node;s->data = i;s->next = l->next;l->next = s;}}//尾插法void create2(PNode &l){PNode tail = l;Node *s = NULL;for (int i = 1; i <= MAX_LEN; i++){s = new Node;s->data = i;s->next = NULL;tail->next = s;tail = s;}}void show(PNode &l){Node *p = l->next;while (p){cout << p->data << " ";p = p->next;}cout << endl;}void del1(PNode &l){while (l){Node *p = l->next;delete l;l = NULL;l = p;}}//递归void del2(PNode &l){if (l == NULL){return;}del2(l->next);delete(l);l = NULL;}int main(){PNode l = new Node;l->next = NULL;create2(l);show(l);del1(l);return 0;}
- 头插法/尾插法建立线性链表
- “头插法”与“尾插法”建立线性链表的异同
- 数据结构一一线性表的链式存储结构之头插法和尾插法建立链表
- 数据结构 线性表 建立单链表 尾插法
- 数据结构 线性表 建立单链表(头插法)
- 数据结构 线性表 建立循环链表
- YTU 2209: 建立链表(线性表)
- Problem E: 建立链表(线性表)
- Problem E: 建立链表(线性表)
- 建立线性链表的过程
- 线性链表的建立与显示
- 线性表建立、删除
- 建立线性表
- 线性表的顺序建立
- 第二章 线性表(链表的建立与合并)
- 线性表建立、插入、删除、查找应用
- 线性表的建立以及基本操作
- 第三周-项目1-建立线性表
- c# web pie chart(包含美观的样式)
- 会话与会话状态
- linu命令学习之chmod
- VC format函数详解(讲的很清楚)
- C# 中判断是不是URL 的方法?
- 头插法/尾插法建立线性链表
- cocos2d-x for android:CCSprite 精灵动画
- autoVue 无法查看,AXML抛出异常
- JavaScript类和继承:this属性
- C语言中static的作用
- OPTIMIZER_INDEX_COST_ADJ与成本计算
- android 4.0 蓝牙分析-设置面板中蓝牙工作的流程
- Android自定义Style
- 关于unity3d的插件toolkit2d的spider 蜘蛛怎么动起来的,网上没有答案