链表的头插法
来源:互联网 发布:制作电子文档软件 编辑:程序博客网 时间:2024/06/06 17:57
没想到一个看似简单的链表的头插法……昨天我竟然写了一个多小时……而且最后还不对……大话数据结构只有函数部分,主函数是怎么调用的并没有写,可能大部分人都觉得都已经把最难的部分写出来了,没必要都写全,可是每一部分对我来说都很难……九月份就找工作了对自己表示担忧。。。
主函数在调用createLink()函数时,createLink里有两个参数,对于第一个参数的传入有两种写法:
1、Linklist head=NULL;
createLink(&head,10);
2|、Linklist *head=(Linklist*)malloc(sizeof(Node));
createLink(head,10);
3、我写的是Linklist *head=NULL;
createLink(head,10);
然而这是错的,我以为既然可以传head的地址进去(head是NODE*类型的),那么定义一个指向head的指针并传入head,也是一样的。结果显示这是错的,经二哥指正说应该是因为creatLink()函数我们是为了用这个头结点,传入一个我们定义好的NODE * head=NULL的head地址,修改的直接就是head,虽然head(指向NODE类型的头结点)为空(LINKLIST *L=&head就是L指向这个内容为空的头结点head)。但是当传入NODE** head=NULL;时,是指向NODE*的head指针为空,而NODE* 也没有为他分配一个内存空间,NODE*是NULL,在create函数里*L=(Linklist)malloc(sizeof(Node));运行到这句话就出错了!但是当*head这么定义时:Linklist *head=(Linklist*)malloc(sizeof(Node));程序运行正确
#include <iostream>
#include<stdio.h>#include<stdlib.h>
#include<time.h>
using namespace std;
typedef struct Node
{
int data;
struct Node *next;
}Node;
typedef struct Node *Linklist;
void createLink(Linklist *L,int n)
{
Linklist p;
int i;
srand(time(0));
*L=(Linklist)malloc(sizeof(Node));
(*L)->next=NULL;
for(i=0;i<n;i++)
{
p=(Linklist)malloc(sizeof(Node));
p->data=rand()%100+1;
p->next=(*L)->next;
(*L)->next=p;
}
Linklist *ptr=L;
while((*ptr)->next!=NULL)
{
cout<<(*ptr)->data<<endl;
(*ptr)=(*ptr)->next;
}
}
int main()
{
// cout << "Hello world!" << endl;
Linklist *head=(Linklist*)malloc(sizeof(Node));
createLink(head,10);
//Linklist *L=Linklist &head;
// Linklist *L=Linklist *head;
return 0;
}
- 链表的头插法
- 动态链表的头插法
- l链表的头插法和尾插法
- 利用链表的头插法,将链表逆序
- 链表的逆转(头插法)
- 关于线性表的链式存储(链表)的创建,头插法,尾插法,删除链表结点的操作
- 使用java实现的超简单的单向链表 头插法
- 利用头插法实现单向链表的逆置
- “头插法”与“尾插法”建立线性链表的异同
- Java实现链表结构的头插法与尾插法
- 邻接链表的构建详解【头插法&&尾插法】
- 数据结构 P30 算法实现 链表的头插法 尾插法
- 链表的几个功能的实现
- 栈的动态链表的实现
- 串的动态链表的实现
- 图的链表的 bfs
- 链表的相邻元素的翻转
- C的链表的概念应用
- Yolo 9000的darknet实现
- 【剑指offer】面试题3:数组中重复的数字
- Maven学习 — <build> 中的 <plugins>元素的作用
- lianxi
- 将文件内容全部倒置,并写入文件
- 链表的头插法
- 01 目录结构、基础命令的讲解、管道和重定向(讲解邮件的发送)
- 对Java中classpath、path和Java_HOME的理解
- 线程执行完,死亡后,还能再次执行start吗?
- 【树的倍增】【二分 or LCA】USACO MAR11银组 聚会地点
- 部分概念对比
- 算法学习之旅,初级篇(7)--数字塔
- Glide 圆形加载图片
- Qt Creator常用快捷键