数据结构初学

一、单链表的创建、删除、插入、打印

1.声明一个结构体

#include <iostream>

using namespace std;
struct List
{
    List *node;
    int n;
};

2.创建

List *create(List *head)
{
    int sum,i=1;;
    cout<<"输入总数:"<<endl;
    cin>>sum;
    List *p;
    List *Node =NULL;
    for(i=1;i<=sum;i++){
    Node =new List;
    cin>>Node->n;
    if(head==NULL)
    {
        head=Node;
    }
    else
        p->node=Node;
        p=Node;
    if(i==sum)
    {
        p->node=NULL;
    }
}
    return head;
}

3.插入

List* insert(int n,List *head,int num){
    List *p=NULL;
    List *q=NULL;
    p=head;
    int i=0;
    while(p!=NULL){ i++;
        if(i==n-1){
        q=new List;
    q->n=num;
    q->node=p->node;
            p->node=q;

        }
        p=p->node;

    }

4.删除

List* delet(int n,List *head){
    List *p=NULL;
    p=head;
    int i=1;
    if(n==1){
        head=p->node;
    }
    else{
   while(p!=NULL){
            i++;
    if(i==n-1){
        p->node=p->node->node;
    }
    p=p->node;
   }
    }
      return head;
}

5.打印

void show(List *head)
{
    List *p=NULL;
    p=head;
    while(p!=NULL)
    {
        cout<<p->n<<endl;
        p=p->node;

    }
}

主函数测试:

int main()
{
    List *student=NULL;
    student= create(student);
    show(student);
   student= delet(1,student);
    show(student);
    cout<<"*------------------*"<<endl;
    student=insert(2,student,8);
    show(student);
    return 0;
}
时间: 2024-10-15 22:23:32

数据结构初学的相关文章

python 数据结构 初学时没太注意却发现很有用的点点滴滴

1. list.extend(L) 将指定列表中的所有元素附加到另一个列表的末尾:相当于a[len(a):] = L. 2. list.pop([i]) 删除列表中指定位置的元素并返回它.如果未指定索引,a.pop()将删除并返回列表中的最后一个元素.(i 两边的方括号表示这个参数是可选的,而不是要你输入方括号.你会在 Python 参考库中经常看到这种表示法). 3. list.index(x) 返回列表中第一个值为 x 的元素的索引.如果没有这样的元素将会报错. 4. list.count(

【数据结构初学】(java实现篇)&mdash;&mdash;队列(转)

原文地址:http://www.cnblogs.com/skywang12345/p/3603935.html 原文地址:http://www.cnblogs.com/skywang12345/p/3603935.html 原文地址:http://www.cnblogs.com/skywang12345/p/3603935.html (自己是个javav初学者 借助一下大牛的文章 记录下每天的学习情况!大家多去这个大牛博客里面看看,里面很多干货 绝对福利!) JDK包Queue中的也提供了"队列

线性表之单链表学习小结(初学数据结构必看)

花了好几个小时,详细规划出了整个过程,包括所有基本操作...有什么疑问请下方留言 #include<iostream> using namespace std; #define ElemType char #define ERROR 0 #define OK 1 typedef struct Node { ElemType data; struct Node *next; }Node,*LinkList; void init_linklist(LinkList L)/*对单链表进行初始化*/

[BS]初学数据结构的几个基本概念以及时间复杂度的分析

几个基本概念: 数据,数据元素,数据项,数据结构 数据(data):数据是对客观信息的一种描述,它是由能被计算机识别与处理的数值.字符等符号构成的集合.含义较为广泛,意会即可. 数据元素(data element):数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理. 数据项(data item):博主认为可以和数据元素参照理解.在遇到实际问题时我们再做分析. 数据结构(data structures):数据结构分为数据的逻辑结构和数据的物理结构.逻辑结构是面向我们所要研究的

数据结构实验指导(初学内容)

实验一  线性表的顺序表示与实现 1.实验目的 (1)   掌握线性表的顺序存储结构: (2)   验证顺序表及其基本操作的实现: (3)   掌握数据结构及算法的程序实现的基本方法. 2.实验内容 (1)    建立含有若干个元素的顺序表: (2)    对已经建立的顺序表实现插入.删除.查找.合并等基本操作. 3.实现算法 首先,定义顺序存储结构如下: Typedef  struct { Elemtype *elem; Int  length; Int  listsize; }sqlist;

初学数据结构~来看看栈和递归之间的关系~

%E5%85%B3%E4%BA%8E%E6%B3%8A%E6%9D%BE%E5%88%86%E9%85%92%E7%9A%84%E9%97%AE%E9%A2%98 https://www.scarbbs.com/thread-163967-1-1.html https://www.scarbbs.com/thread-163970-1-1.html https://www.scarbbs.com/thread-163972-1-1.html https://www.scarbbs.com/thr

《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

先附上文档归类目录: 课本源码合辑  链接??? <数据结构>课本源码合辑 习题集全解析  链接??? <数据结构题集>习题解析合辑 博主有话说: 01.自学编程,难免思路阻塞,所以从今天起,我(StrayedKing)决定在本博客陆续更新严蔚敏,吴伟民版<数据结构-C语言版>各章节的课本源码和配套习题集答案解析,目的是为了整理数据结构中的知识点,并与网友交流意见,集思广益,共同进步.        ★注★ 左侧随笔分类下用两个栏目:<课本源码>.<习

初学构建之法之体会

初学构建之法感悟颇多. 几乎所有程序员都知道"程序=数据结构+算法"这句名言,但我在读这本书之前一直有个疑惑,我感觉所学的数据结构和算法课程几乎没有太大的联系,这是为何,读了这本书,我才了解到,原来程序,就是行行的代码,是建立在数据结构上的算法.程序要对数据进行操作,这些数据有些是静态的,有些是动态的.但是光有代码和数据还不行,工程师要把它们构建为机器能懂的可执行代码,一个复杂的软件不但要有合理的软件构架,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译关系,链接关系等等,这

如果是初学C语言请看完 一些成功人士的心得

转自程先的专栏     今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的:是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作.建议大家在心里默念三遍他们的名字,以示仰慕.当然,如果让你们带着现在的知识回到他们的那个时代,那么就没有什么图灵奖了. C语言程序设计是我们的专业基础课,但是C语言本身却是