博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性表的链式存储
阅读量:6069 次
发布时间:2019-06-20

本文共 2072 字,大约阅读时间需要 6 分钟。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#define N 500010
#define INF 10000000
#define LL long long
#define eps 10E-9
#define mem(a)  memset(a,0,sizeof(a))
#define w(a)   while(a)
#define s(a)   scanf("%d",&a)
#define ss(a,b)   scanf("%d%d",&a,&b)
#define sss(a,b,c)   scanf("%lld%lld%lld",&a,&b,&c)
#define MAXN 9999
#define MAXSIZE 10
#define DLEN 4
#define MAXN 9999
#define MAXSIZE 10
#define DLEN 4
using namespace std;
typedef struct node
{
    int data;
    struct node *next;
} Node;
void create(Node **p)
{
    *p=NULL;
}
int my_insert(Node **p, int x)
{
    Node *p1;
    p1 = (Node *) malloc(sizeof (Node));
    if (p1 == NULL)
        return false;
    Node *p2=*p;
    while(p2 != NULL)
    {
        if (p2->data == x)
            break;
        p2= p2->next;
    }
    p1->data = x;
    p1->next = *p;
    *p = p1;
    return true;
}
int my_delete(Node **head, int x)
{
    Node *p=*head, *q;
    if (p->data == x)//考虑头结点就是要删除的元素
    {
        *head = (*head)->next;
        free(p);
        return true;
    }
    else
    {
        q = p; p = p->next; //q指向前一个节点,p指向下一个节点
        while(p != NULL)
        {
            if (p->data == x)
            {
                q->next = p->next;
                free(p);
                return true;
            }
            q = p; p = p->next;
        }
    }
    return false;
}
int my_find(Node **head, int x)
{
    Node *p=*head;
    while(p != NULL)
    {
        if (p->data == x)
            break;
        p = p->next;
    }
    return p->data;
}
void my_clear(Node **head)
{
    Node *p=*head,*q;
    while (p != NULL)
    {
        q = p;
        p = p->next;
        free(q);
    }
}
void my_showalldata(Node **head)
{
    Node *p=*head,*q;
    while (p != NULL)
    {
        cout<<p->data<<" ";
        p = p->next;
    }
    cout<<endl;
}
int main()
{
    int x, n;
    Node *head;
    create(&head);
    cout<<"input the count(n) of data :"<<endl;
    cin>>n;
    cout<<"input the n'data:"<<endl;
    while(n--){
        cin>>x;
        my_insert(&head,x);
    }
    cout<<"this is all the data of the table:"<<endl;
    my_showalldata(&head);
    cout<<"input the data you want to delete:"<<endl;
    cin>>x;
    my_delete(&head,x);
    my_showalldata(&head);
    cout<<"input the data you want to find:"<<endl;
    cin>>x;
    cout<<"the data you want find is:"<<my_find(&head,x)<<endl;
   // my_clear(&head);// formating
    free(head);
    return 0;
}

转载地址:http://qufgx.baihongyu.com/

你可能感兴趣的文章
Concurrent Request:Inactive phase,No Manager status
查看>>
查看linux版本号的几种方法
查看>>
[转]MyBatis传入多个参数的问题 - mingyue1818
查看>>
Meteor 加入账户系统
查看>>
iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer
查看>>
计算几位学生的平均分
查看>>
Python黑客编程2 入门demo--zip暴力破解
查看>>
必看 :大数据挖掘中易犯的11大错误
查看>>
宿主系统为Ubuntu 14,CentOS 6.5 安装VirtualBox增强工具失败:Building the OpenGL support module[FAILED]...
查看>>
MVC学习系列14--Bundling And Minification【捆绑和压缩】--翻译国外大牛的文章
查看>>
Android实战简易教程-第十枪(画廊组件Gallery有用研究)
查看>>
POJ 2965:The Pilots Brothers&#39; refrigerator
查看>>
Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
查看>>
无法启动此程序,因为计算机中丢失 api-ms-win-crt-stdio-l1-1-0.dll 解决
查看>>
java获取指定文件夹下的所有文件名
查看>>
weex 项目开发(一) weex create project 与 weex init project 的区别
查看>>
PCH简单介绍
查看>>
c#实现用SQL池(多线程),定时批量执行SQL语句
查看>>
【译】Immutable.js: Map - 5
查看>>
【移动端 Web】怎么循序渐进地开发一个移动端页面
查看>>