单链表的建立与打印

建立单链表,并且从头到尾打印单链表


#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<stdlib.h>

#include<assert.h>

typedef int DataType;

typedef struct LinkNode

{

DataType data;//定义节点的数据

struct LinkNode *next;//保存下一个节点的地址

}LinkNode,*pList,*pLinkNode;//指向节点的指针

pLinkNode BuyNode(DataType x)

{

pLinkNode NewNode=(pLinkNode)malloc(sizeof(LinkNode));

NewNode->data=x;

NewNode->next=NULL;

}

void PushBack(pList *pHead,DataType x)

{

pLinkNode cur=*pHead;

pLinkNode NewNode=BuyNode(x);

assert(pHead);

if(cur==NULL)

{

*pHead=NewNode;

return;

}

while(cur->next)

{

cur=cur->next;

}

cur->next=NewNode;

}

void InitLinkList(pList *pHead)

{

assert(pHead);

(*pHead)->next=NULL;

}

void printList(pList list)

{

pLinkNode cur=list;

printf("list is:");

while(cur)

{

printf("%d->",cur->data);

cur=cur->next;

}

printf("\n");

}

int main()

{

pList myList;

InitLinkList(&myList);

PushBack(&myList, 1);

PushBack(&myList, 2);

PushBack(&myList, 3);

PushBack(&myList, 4);

PushBack(&myList, 5);

PushBack(&myList, 6);

printList(myList);

system("pause");

return 0;

}

时间: 2024-08-07 01:55:42

单链表的建立与打印的相关文章

单链表的建立/测长/打印

#include<iostream> #include<stdio.h> #include<string.h> #include<conio.h> using namespace std; typedef struct student { int data; struct student *next; }node; node *creat() { node *head, *p, *s; int x, cycle = 1; head = (node*)mall

单链表的建立和增删改查代码及讲解

//---单链表的单链式存储结构---- typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; //1.初始化 int Initlist(LinkList L) { L=NULL; return OK; } //初始化(带头结点) int Initlist(LinkList L) { L=(LNode*)malloc(sizeof(Lnode));//为头结点分配内存空间 L->next=NULL;

单链表的建立,插入,显示,查找删除以及反转

#include "stdafx.h" #include <iostream> #include <string> #include <stack> //二叉树遍历时使用栈 #include <queue> //二叉树层次遍历时使用 using namespace std; //单链表操作 class Node { public: Node *next; Node *front; //双向链表时指向前驱节点的指针 int data; };

单链表(建立、插入、删除、打印)

单向链表创建 链表是动态分配存储空间的链式存储结构. 其包括一个"头指针"变量,其中第0个结点称为整个链表的头结点,头结点中存放一个地址,该地址指向一个元素,头结点一般不存放具体数据,只是存放第一个结点的地址. 链表中每一个元素称为"结点",每个结点都由两部分组成:存放数据元素的数据域和存储直接后继存储位置的指针域.指针域中存储的即是链表的下一个结点存储位置,是一个指针.多个结点链接成一个链表. 最后一个结点的指针域设置为空(NULL),作为链表的结束标志,表示它没

「C语言」单链表/双向链表的建立/遍历/插入/删除

最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合,一种面向过程的MVC的感觉. 而这一切的基础就在于对链表的创建.删除.输出.写入文件.从文件读出...... 本篇文章在于巩固链表的基础知识(整理自<C语言程序设计教程--人民邮电出版社>第十章),只对链表的概念及增删改查作出探讨,欢迎指教. 一.链表结构和静态/动态链表 二.单链表的建立与遍历

数据结构-编程实现一个单链表的打印

1:首先参考别人的单链表的创建及打印,代码如下: #include "stdafx.h" #include<stdio.h> #include<malloc.h> typedef struct LNode { int data; struct LNode *next; }LNode; /*上面只是定义了一个结构体类型,并未实际分配内存空间 只有定义了变量才分配内存空间*/ LNode *creat(int n) { int i; LNode *head, *p1

单链表的初始化,建立,插入,查找,删除。

#include <stdio.h> #include <stdlib.h> typedef int ElemType; //定义结点类型 typedef struct Node { ElemType data;              //单链表中的数据域 struct Node *next;          //单链表的指针域 }Node,*LinkedList; //单链表的初始化 LinkedList LinkedListInit() { Node *L; L = (N

数据结构-编程实现一个双链表的建立,双链表的打印,双链表的测长

1:双链表的建立,打印,代码如下: // ConsoleApplication24.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<malloc.h> #include <iostream> #include <assert.h> using namespace std; typedef struct DbNode //双向链表结构体 { int data;//节点数据 DbNode *lef

链表(主要是单链表)

单链表:只指出后继关系的链表 双链表:同时存储前趋和后继 循环链表:指出后继的同时指出头结点和尾结点的关系 单链表的存储 定义一个结点类型 struct  linkRec { datatype  data; linkRec  *next; } 单链表操作-插入 在结点p后插入一个结点 *申请空间 *输入数据放入申请到的空间 *链入p后 tmp = new linkRec;  // 创建一个新结点 tmp->data = x;        // 把x放入新结点的数据成员中 tmp->next