学习顺序表以及单链表过程中遇到的困难

课上听着老师的讲解以为自己动手是能够很容易完成一个线性表的创建,但是事实并不是这样。

创建一个线性表需要足够清晰的思路!

下面是一个顺序表的创建:

复制代码
#include <iostream>
using namespace std;
struct List
{
    int data[100];
    int length;
};
void Createlist(int n, List &L)
{
    L.length = n;
    for (int i = 0; i < n; i++)
    {
        cin >> L.data[i];
    }
}
void Showlist(int n, List L)
{

    for (int i = 0; i < n - 1; i++)
        cout << L.data[i] << " ";
    cout << L.data[n - 1];
}
int main()
{
    int n;
    List list;
    cin >> n;
    if (n != 0)
        Createlist(n, list);
    if (n != 0)
        Showlist(n, list);
    return 0;
}
复制代码
下面是一个单链表的创建:
复制代码
#include <iostream>
using namespace std;
typedef struct Node
{
    int data;
    Node *next;
} Node, *LinkList;
int InitList(LinkList &L)
{
    L = new Node;
    L->next = NULL;
    return 1;
}
void CreateList(int n, LinkList &L)
{
    Node *p, *r;
    r = L;
    for (int i = 0; i < n; i++)
    {
        p = new Node;
        cin >> p->data;
        p->next = NULL;
        r->next = p;
        r = p;
    }
}
void PrintList(int n, LinkList &L)
{
    Node *p = L->next;
    for (int i = 0; i < n; i++)
    {
        if (p->next != NULL)
            cout << p->data << " ";
        else
            cout << p->data;
        p = p->next;
    }
    // while(p)
    // {
    // if(p->next!=NULL) cout<<p->data<<" ";
    // else cout<<p->data;
    // p=p->next;
    // }
}
int main()
{
    LinkList L;
    InitList(L);
    int m;
    cin >> m;
    CreateList(m, L);
    PrintList(m, L);
    return 0;
}
复制代码

初识线性表,还需继续练习才行!

posted @   peach1  阅读(466)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示