顺序链表——数据结构start!

 1 #include <iostream>
 2
 3 using namespace std;
 4 //顺序链表
 5 #define MAXSIZE 20
 6 #define OK 1
 7 #define ERROR 0
 8 #define TRUE 1
 9 #define FALSE 0
10 typedef int ElemType;
11 typedef int Status;
12 typedef struct
13 {
14   ElemType data[MAXSIZE];
15   int length;
16 }SqList;
17
18 //初始化
19 void InitSqlist(SqList *L){
20      L->length=0;
21 }
22 //获取长度
23 Status GetLength(SqList L){
24   return L.length;
25 }
26 //获取操作
27 Status GetElem(SqList L, int i, ElemType *e){
28   if(L.length==0 || i<1 || i>L.length)
29   return ERROR;
30   *e = L.data[i-1];
31   return OK;
32 }
33 //插入操作
34 Status ListInsert(SqList *L, int i, ElemType e){
35   int k;
36   if(L->length == MAXSIZE)
37   return ERROR;
38   if(i<1 || i>L->length+1)
39   return ERROR;
40   if(i<=L->length){
41   for(k=L->length-1; k>=i-1; k--){
42     L->data[k+1]=L->data[k];
43   }
44   }
45    L->data[i-1]=e;
46    L->length++;
47    return OK;
48 }
49 //删除操作
50 Status ListDelete(SqList *L, int i, ElemType *e){
51   int k;
52   if(L->length == 0)
53   return ERROR;
54   if(i<1 || i>L->length)
55      return ERROR;
56      *e=L->data[i-1];
57      if(i<L->length){
58      for(k=i; k<L->length; k++){
59      L->data[k-1]=L->data[k];
60      }
61      }
62      L->length--;
63      return OK;
64
65 }
66 int main()
67 {
68            SqList myList;
69            int del=0, get=0;
70            int pos;
71            InitSqlist(&myList);
72   for(int i=1; i<=10; i++){
73       if(ListInsert(&myList, i, i)==OK)
74            cout << "insert:" << i << endl;
75   }
76   cout <<"输入删除位置:"<<endl;
77   cin >> pos;
78    if(ListDelete(&myList, pos, &del)==OK)
79        cout << "Delete:" << del << endl;
80        cout << "All Elem:"<<endl;
81        for(int i=1; i<=GetLength(myList); i++){
82           if(GetElem(myList, i, &get)==OK)
83                     cout << get << ‘ ‘;
84        }
85
86   return 0;
87 }
时间: 2024-10-08 20:22:00

顺序链表——数据结构start!的相关文章

c++数据结构之链表详情1(顺序链表)

长大是人必经的溃烂        ---大卫塞林格 代码是年轻人的新生!!!!!! 程序 = 数据结构  + 算法   --Niklaus EmilWirth 这篇博客在参考一些书籍和教学视频的基础上整理而来,中间夹杂了一些自己写的代码 1.List 先贴一个基础的整型顺序链表list的c++代码 List.cpp 1 #include <iostream> 2 #include "List.h" 3 4 using namespace std; 5 6 //创建链表 7

C#单链表(数据结构)

学习单链表的源码项目:http://files.cnblogs.com/xmfdsh/CSharp%E5%8D%95%E9%93%BE%E8%A1%A8.rar 链表是用一组任意的存储单元来存储线性表中的数据元素(在存储单元中可以是连续的,也可以是不连续的).链表在存储数据元素时,除了存储数据元素本身的信息外,还要存储与它相邻的数据元素的存储地址信息.这两部分信息组成该数据元素的存储映像,称为节点. 节点的形象图如下: 首先定义一个类Node来表示这些节点: public class Node<

顺序链表笔记

数据结构基础  最简单的部分  顺序链表实际就是个结构体数组  代码如下 比较简单 1 #include "stdio.h" 2 #include "string.h" 3 #define MAXSIZE 100 4 5 6 7 typedef struct 8 { 9 char key[15]; 10 char name[20]; 11 int age; 12 }DATA; 13 14 15 typedef struct 16 { 17 DATA ListData

C#顺序表(数据结构)

xmfdsh我近来心情实在不好,只因为这两天课比较少,然后一下子时间太多,不知道干什么,心情郁闷......这是要闹哪样?这都让我一个郁闷了一个晚上.闲来无聊,回顾下之前学的C#数据结构,数据结构的重要性无论是对于哪门语言都是很必要也很重要的,课程中老师教的C语言,然后我自己自学的C#,再自学了C#的数据结构,对比了下,发现C,C++这些有着指针,比较低级点的语言,写起数据结构更加能考验一个人的思维,C#作为一门高级语言,也是有着自己一套数据结构的,这些更深层次的对比等我都学了比较精通再来慢慢对

删除顺序链表中重复的数 (一) leecode

Given a sorted linked list, delete all duplicates such that each element appear only once. For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3. 1 /** 2 * Definition for singly-linked list. 3 * public class

链表数据结构图解 和 代码实现

项目中经常会用到LinkedList集合来存储数据,打算写一篇LinkedList的源码解析,而LinkedList是基于链表结构存储数据的,这篇博文将解析链表数据结构,包括单向链表和双向链表: 1:单向链表: 单向链表的链表对象维护了一个 first 引用,该引用指向节点链表中的第一个节点对象,每个节点对象维护一个 next 引用,next引用指向下一个节点对象:(这里注意:是引用指向的是节点对象:节点对象包含存储的数据和next引用) 以下是单向链表的图解: java代码实现如下: publ

2. 顺序表 数据结构与算法(python)

2. 顺序表 在程序中,经常需要将一组(通常是某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录他们,传进传出函数等.一组数据中包含的元素个数可能发生变化(可以增加或删除元素). 对于这种需求,最简单的解决方法便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系. 这样的一组序列元素的组织形式,我们可以将其抽象为线性表.一个线性表是某类元素的一个集合,还记录着元素之间的一种顺序关系.线性表是最基本的数据结构之

静态链表----数据结构(C语言版) 算法2.17 心得

今天学习了数据结构中的静态链表,刚开始有些语句不能理解,研究了大半天终于想通了.记录于此留待以后查看,同时,对于同样对静态链表有些许不理解的人一点启发.文章中难免有理解上的问题,请指正.下面进入正文. 一.静态链表结构 静态链表可以在不设"指针"类型的高级程序设计语言中使用链表结构.静态链表如下所示:   首先,了解一下静态链表.静态链表中跟单链表类似,包含有很多结点,第i个结点中有包括数据space[i].data,和游标cur,游标space[i].cur的值为下一个结点的数组下标

java实现顺序链表

SequenceList.java文件 package list; public class SequenceList { private int LIST_INIT_SIZE = 5;//链表的原始大小 private int INCREMENT =1;//链表的增量大小 private Object []SqList = null;//链表 private int curIndex=0;//当前位置 /** * 初始化链表 * */ public void initList() { SqLi