zoukankan      html  css  js  c++  java
  • 链表的基本表示操作

    //链表:
    
    #include <iostream>
    using namespace std;
    //定义结点:
    struct NODE
    {
        int data;//数据域
        NODE *next;//指针域
    };
    //链表类:
    class LIST
    {
        NODE *head;
    public:
        //构造函数
        LIST()
        {
            head = new NODE;//申请结点空间
            head->next = NULL;//指针域设为空
        }
    
        void readInit(int n);
        int getByNum(int n);
        int getByData(int data);
    };
    //创建链表
    void LIST::readInit(int n)
    {
        cout << "请输入"<< n << "个结点值" << endl;
        int data;
        for(int i = 0; i < n; i++)
        {
            cin >> data;
    NODE *newNode = new NODE;
    //为每一个结点申请空间 newNode->data = data;
    newNode->next = NULL;
    //指针域设置为空 NODE *cur = head;
    //又定义一个数组指针指向表头 while(cur->next) { cur = cur->next; } cur->next = newNode; } } //通过序号查找数值: int LIST::getByNum( int n ) { int i = 0; NODE* cur = head; while(cur->next && i < n) { cur = cur->next;

    //不断地把后面的指针域赋值给前面的;直到i=n也就是当找到需要的元素时 i++; } return cur->data;//输出要查找的元素 } //通过数值查找序号: int LIST::getByData( int data ) { int i = 0; NODE *cur = head;//为什么都要把head放到*cur里面? while(cur->next) { cur = cur->next; i++;//用来记录序号数,然后如果找到就把这个序号输出 if(cur->data == data) { return i; } } return -1; } int main() { int n, i, data; LIST list; cout << "请输入要建立的链表长度" << endl; cin >> n; list.readInit(n); cout << "请输入要查询的链表序号" << endl; cin >> i; cout << "" << i << "个结点值为" << list.getByNum(i) << endl; cout << "请输入要查询的结点值" << endl; cin >> data; i = list.getByData(data); if(i == -1) { cout << "找不到该结点" << endl; } else { cout << "该结点值位于第" << i << "" << endl; } system("pause"); return 0; }
  • 相关阅读:
    如何使用jmeter来实现更大批量的并发的解决方案
    jmeter分布式集群---部署多台机器进行性能压力测试
    HP Loadrunner12的下载和安装
    python 安装三方库碰到的问题
    测试风险评估
    Android Studio Android SDK Android NDK 官方下载地址
    PC版微信数据库解密详细教程
    js文件加载优化
    MYiSAM和InnoDB引擎区别(mysql)
    php利用cookie防止重复提交解决办法
  • 原文地址:https://www.cnblogs.com/tianjintou/p/4518371.html
Copyright © 2011-2022 走看看