数据结构实验一:线性表的基本操作

简介:
顺序表—线性表的顺序实现删除多余元素
#include<iostream>
#include<stdlib.h>
using  namespace std;
struct node
{
     int n[ 100];
     int length;
     int tag;
}a;
void init()
{
     int i;
     for(i= 0;i< 30;i++)
    {
        a.n[i]=rand()% 10;
        a.length++;
    }
}
void display( int n)
{
     int i;
     for(i= 0;i<n;i++)
    cout<<a.n[i]<< "   ";
    cout<<endl;
}
int find( int num)
{
     int i;
     for(i= 0;i<a.tag;i++)
     if(a.n[i]==num)
     return  1;
     return  0;
}
void del()
{
     int i;
     for(i= 0;i< 30;i++)
    {
         if(!find(a.n[i]))
        a.n[a.tag++]=a.n[i];
    }
}
int main()
{
    init();
    display( 30);
    del();
    display(a.tag);
     return  0;
}





链表——链表实现删除多余元素

#include<iostream>
#include<stdlib.h>
using  namespace std;
typedef  struct s
{
     int data;
     struct s *next;
}list;
list *head2,*tail;
void insert(list *l, int n)
{
    list *p;
    p= new list;
    p->data=n;
    p->next=l->next;
    l->next=p;
}
void display(list *l)
{
    list *p;
    p=l->next;
     while(p!=NULL)
    {
        cout<<p->data<< "   ";
        p=p->next;
    }
    cout<<endl;
}
int find( int n)
{
    list *p;
    p=head2->next;
     while(p!=NULL)
    {
         if(p->data==n)
         return  1;
        p=p->next;
    }
     return  0;
}
void del(list *l)
{
    list *p,*q;
    p=l;
     while(p->next->next!=NULL)
    {
         if(!find(p->next->data))
        {
            q=p->next;
            p->next=q->next;
            q->next=NULL;
            tail->next=q;
            tail=q;
        }
         else
        p=p->next;
    }
     if(!find(p->next->data))
    {
        q=p->next;
        q->next=NULL;
        tail->next=q;
        tail=q;
    }
}
int main()
{
     int i;
    list *head1;
    head1= new list;
    head2= new list;
    head1->next=NULL;
    head2->next=NULL;
    tail=head2;
     for(i= 1;i<= 30;i++)
    insert(head1,rand()% 10);
    display(head1);
    del(head1);
    display(head2);
}
复制代码

博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/

对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com


本文转自ma6174博客园博客,原文链接:http://www.cnblogs.com/ma6174/archive/2012/01/05/2313297.html ,如需转载请自行联系原作者
相关文章
|
存储 C语言
数据结构中的线性表链式存储介绍及其基本操作
链式存储是线性表的一种重要存储方式,它通过节点和指针的结构,实现了灵活的动态存储管理。本文介绍了单向链表的基本操作,并提供了相应的C语言代码示例。理解和掌握链表的操作对学习和应用数据结构具有重要意义。希望这篇博客能帮助你更好地理解线性表的链式存储。
422 2
|
10月前
|
存储 算法 测试技术
【C++数据结构——线性表】求集合的并、交和差运算(头歌实践教学平台习题)【合集】
本任务要求编写程序求两个集合的并集、交集和差集。主要内容包括: 1. **单链表表示集合**:使用单链表存储集合元素,确保元素唯一且无序。 2. **求并集**:遍历两个集合,将所有不同元素加入新链表。 3. **求交集**:遍历集合A,检查元素是否在集合B中存在,若存在则加入结果链表。 4. **求差集**:遍历集合A,检查元素是否不在集合B中,若满足条件则加入结果链表。 通过C++代码实现上述操作,并提供测试用例验证结果。测试输入为两个集合的元素,输出为有序集合A、B,以及它们的并集、交集和差集。 示例测试输入: ``` a c e f a b d e h i ``` 预期输出:
297 7
|
10月前
|
机器学习/深度学习 存储 C++
【C++数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
本内容介绍了单链表的基本运算任务,涵盖线性表的基本概念、初始化、销毁、判定是否为空表、求长度、输出、求元素值、按元素值查找、插入和删除数据元素等操作。通过C++代码示例详细解释了顺序表和链表的实现方法,并提供了测试说明、通 - **任务描述**:实现单链表的基本运算。 - **相关知识**:包括线性表的概念、初始化、销毁、判断空表、求长度、输出、求元素值、查找、插入和删除等操作。 - **测试说明**:平台会对你编写的代码进行测试,提供测试输入和预期输出。 - **通关代码**:给出了完整的C++代码实现。 - **测试结果**:展示了测试通过后的预期输出结果。 开始你的任务吧,祝你成功!
490 5
|
10月前
|
机器学习/深度学习 存储 C++
【C++数据结构——线性表】顺序表的基本运算(头歌实践教学平台习题)【合集】
本文档介绍了线性表的基本运算任务,涵盖顺序表和链表的初始化、销毁、判定是否为空、求长度、输出、查找元素、插入和删除元素等内容。通过C++代码示例详细展示了每一步骤的具体实现方法,并提供了测试说明和通关代码。 主要内容包括: - **任务描述**:实现顺序表的基本运算。 - **相关知识**:介绍线性表的基本概念及操作,如初始化、销毁、判定是否为空表等。 - **具体操作**:详述顺序表和链表的初始化、求长度、输出、查找、插入和删除元素的方法,并附有代码示例。 - **测试说明**:提供测试输入和预期输出,确保代码正确性。 - **通关代码**:给出完整的C++代码实现,帮助完成任务。 文档
324 5
|
算法
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
143 0
|
存储 Java
数据结构第二篇【关于java线性表(顺序表)的基本操作】
数据结构第二篇【关于java线性表(顺序表)的基本操作】
163 6
|
存储
【数据结构】线性表和顺序表
【数据结构】线性表和顺序表
120 1
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之王道第2.3章节之线性表精题汇总二(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人之数据结构与算法系列学习×单双链表精题详解、数据结构、C++、排序算法、java 、动态规划 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
01(数据结构考研)线性表相关操作代码
01(数据结构考研)线性表相关操作代码
187 0
|
存储 C语言
数据结构之线性表的初始化及其操作
数据结构之线性表的初始化及其操作
203 0

热门文章

最新文章