关闭

线性表 之 链表的头插,尾插建立,及链表的长度

431人阅读 评论(0) 收藏 举报

//线性表 之  链表的头插,尾插建立,及链表的长度
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int Status;
typedef int ElemType;

int count;

typedef struct LNode{
 int data;
 struct LNode *next;
}LNode,*LinkList;


LinkList build()//创建结点
{
 LinkList q;
 q=(LinkList)malloc(sizeof(LNode));
 q->next=NULL;
 return q; 
}

void CreateLink1(LinkList &L,int n)//尾插法建立
{
 int i,x;
 LinkList p,q;
 L=(LinkList)malloc(sizeof(LNode));
 L->next=NULL;
 p=L;//先建立一个带头结点的单链表
 
 for(i=0;i<n;i++)
 {
  q=build();
  scanf("%d",&x);
  q->data=x;
  p->next=q;
  p=q;
 }
 q->next=NULL;
}

void CreateLink2(LinkList &L,int n)//头插法建立
{
 int i,x;
 LinkList p,q;
 L=(LinkList)malloc(sizeof(LNode));
 L->next=NULL;
 p=L;//先建立一个带头结点的单链表
 
 for(i=0;i<n;i++)
 {
  q=build();
  scanf("%d",&x);
  q->data=x;
  q->next=p->next;
  p->next=q;
  
 }
}

Status LengthLink(LinkList &L)
{
 count=0;
 L=L->next;
 while(L)
 {
  count++;
  L=L->next;
 }
 return count;
}


int main()
{
 int n;
 printf("创建链表:输入n及n个数\n");
 scanf("%d",&n);
 LinkList p,root;

 CreateLink2(p,n);
 root=p;

 p=p->next;
 while(p!=NULL)
 {
  printf("%d ",p->data);
  p=p->next;
 }
 printf("\n");


 p=root;
 int k=LengthLink(p);
 printf("链表的长度%d\n",k);
 
 return 0;
}

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

头插法和尾插法建立链表区别

单链表反转是面试时经常会遇到的问题,之前只是在数据结构里用伪代码实现过单链表反转。为落实亲手编写每一个程序的目标,在这里用java实现反转。方法有很多,这里只写最优的。时间复杂度O(n),空间复杂度O...
  • u010111016
  • u010111016
  • 2016-02-27 18:48
  • 4506

C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)

C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
  • xiaofeige567
  • xiaofeige567
  • 2014-05-29 08:54
  • 13908

C/C++学习(七)单链表的头插法,尾插法,元素插入、删除和查找 .

链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的。在C语言中,链表是通过指针相关实现的。而单链表是链表的其中一种,关于单链表就是其节点中有数据域和只有一个指向下个节点的指针域。创建单链...
  • qq_15145665
  • qq_15145665
  • 2015-12-20 10:28
  • 2484

数据结构一一线性表的链式存储结构之头插法和尾插法建立链表

单链表整表创建的算法思路: 声明一结点p和计数器变量i;初始化一空链表L;让L的头结点的指针指向NULL,即建立一个带头结点的单链表;循环: 生成一新结点賦值给p;随机生成一数字賦值给P的...
  • xuanyin235
  • xuanyin235
  • 2017-12-25 21:33
  • 34

数据结构 线性表 建立单链表(头插法)

#include #include #define LIST_INIT_SIZE 100 #define LISTLNCREMENT 10 #define OK ...
  • qq523176585
  • qq523176585
  • 2013-12-02 18:54
  • 405

关于线性表的链式存储(链表)的创建,头插法,尾插法,删除链表结点的操作

本程序在VC环境下运行。 linklist.h文件。 #include #include typedef int ElemType; #define True 1 #def...
  • u014007741
  • u014007741
  • 2014-03-12 23:00
  • 546

第四周线性表(二)-项目1建立单链表

问题及代码 /* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:王敏 *完成日期:20...
  • lalala_wm
  • lalala_wm
  • 2015-10-05 16:12
  • 242

线性表,单链表,栈 java实现

  • 2017-12-09 19:40
  • 13KB
  • 下载

数据结构 C语言版 线性表的动态存储结构之链表实现

  • 2013-12-01 21:47
  • 11KB
  • 下载

线性表与链表的构造插入删除归并操作

  • 2015-11-29 22:38
  • 2.18MB
  • 下载
    个人资料
    • 访问:573318次
    • 积分:8031
    • 等级:
    • 排名:第2975名
    • 原创:321篇
    • 转载:31篇
    • 译文:0篇
    • 评论:55条
    最新评论