数据结构之链表(一)

原创 2007年09月13日 23:56:00

线性表分为顺序存储结构和链式存储结构2种。

顺序存储结构的特点:任何一个元素都可以进行随即存取,存取速度高。但不适合濒繁的插入和删除操作。

链式存储结构(链表):不可以随即存取元素。但适合频繁的插入和删除操作。

一个静态链表的例子:

#include<stdio.h>
struct node
{
 int data;
 struct node *next;
};
typedef struct node nodeType;
int main()
{
 nodeType sOne,sTwo,sThree, *begin, *p;
 clrscr();
 sOne.data = 1;
 sTwo.data = 2;
 sThree.data = 3;
 begin = &sOne;
 sOne.next = &sTwo;
 sTwo.next = &sThree;
 sThree.next = '/0';
 p=begin;
 while(p)
 {
  printf("%d ",p->data);
  p=p->next;
 }
 printf("/n");
 getch();
 return 0;
}

一个动态链表的例子:

#include<stdio.h>
#include<alloc.h>
typedef struct node
{
 int data;
 struct node *next;
}nodeType;
nodeType *CreateList()     /*这个方法的作用:返回头指针(头结点),头结点没有数据域*/
{
 int i;
 nodeType *begin,*end,*current;
 begin = (nodeType *)malloc(sizeof(nodeType));
 end = begin;
/* begin->data = 1000;*/
 scanf("%d",&i);
 while(i!=-1)    /*输入为-1时,退出循环*/
 {
  current = (nodeType *)malloc(sizeof(nodeType));
  current->data = i;
  end->next = current;
  end = current;
  scanf("%d",&i);
 }
 end->next = '/0';
 return begin;
}
int main()
{
 nodeType *head;
 head = CreateList();
 while(head)
 {/* 顺序访问链表中各结点的数据域*/
  printf("%d ",head->data);   /*头结点没有数据域,所以打印头结点时,数据是随即的。 
  head=head->next;

 /* head = head->next;
  printf("%d ",head->data);
 */
 }
 getch();
 return 0;
}

实际应用中动态链表更为常用。

数据结构实验之链表一:顺序建立链表(构造函数)

数据结构实验之链表一:顺序建立链表 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 输入N个整数,按照输入的...
  • S_Scott
  • S_Scott
  • 2016年09月29日 14:14
  • 1060

数据结构实验之链表二:逆序建立链表

OJ上提交没有PE。 #include #include struct node {     int data;     struct node *next; }; int mai...
  • u013476670
  • u013476670
  • 2014年01月15日 20:14
  • 1167

数据结构之链表学习心得

顺序表从节点之间的链接方式分我连续空间顺序表和链式顺序表,前者的实现就是在普通数组上做了封装,后者实现就是前一个节点保存后一个节点的地址。本文讨论的就是后者,链式顺序表的一个最明显的特征,就是在增减,...
  • liubo2011
  • liubo2011
  • 2016年05月01日 10:02
  • 630

1748:约瑟夫问题(3.2数据结构之指针和链表)

1748:约瑟夫问题总时间限制: 1000ms 内存限制: 65536kB 描述 约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外...
  • qq_26919935
  • qq_26919935
  • 2017年08月09日 09:48
  • 165

Python数据结构——链表

Python中的list是基于array实现的。但无论是list还是array在数据存储和操作层面都有一些缺点。例如在插入和删除元素时都要移动元素,这在数据量旁大时就需要很大开销。array大小是固定...
  • zhangfh1990
  • zhangfh1990
  • 2016年10月22日 10:47
  • 194

数据结构之链表基本操作总结

数组与链表的区别  数组(顺序存储)和链表(链式存储)是两种不同的数据存储方式。 数组是一组具有相同类型和名称的变量的集合,这些变量称为数组的元素,每个数组元素都有一个编号,这个编号称...
  • Lily_whl
  • Lily_whl
  • 2017年05月11日 18:22
  • 1311

【NOI题解】 3.2数据结构之指针和链表

NOI题目地址(3.2数据结构之指针和链表):http://noi.openjudge.cn/ch0302/ 这部分的题解出于练习指针和链表的目的,我都是自定义的链表结构。实际上C++提供了ST...
  • v_xchen_v
  • v_xchen_v
  • 2017年12月21日 19:57
  • 288

数据结构之单链表(C++实现)

很早前就想用C++来实现那些常用的数据结构。 今天就算是个开端把。还是那句话,看的再多不如自己动手写一遍。 按照自己的思路写。首先你得熟悉那种结构的特点,然后才能谈实现。  链表是一种很常用的数...
  • complety
  • complety
  • 2012年04月08日 15:25
  • 7501

数据结构之链表实现

#include #include #include typedef struct node{ int data; struct node * pNext; } * pNode,Node; p...
  • yangji902318
  • yangji902318
  • 2015年09月07日 23:39
  • 124

数据结构:链表(linked-list)

链表分为单向链表(Singly linked lis)、双向链表(Doubly linked list)、循环链表(Circular Linked list)。...
  • juanqinyang
  • juanqinyang
  • 2016年05月09日 11:09
  • 3233
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构之链表(一)
举报原因:
原因补充:

(最多只允许输入30个字)