c++单链表的应用,创建

有一个线性表A={3,5,2,8,1,6,4,0,9},请编写程序实现以下操作。创建单链表linkListA,并将A中的整数依次存入该列表;在以上单链表linkListA中数据元素为6的结点之后插入数据元素为7的结点;(3. 将以上单链表linkListA中的所有元素依次打印输出到控制台;4. 获取链表linkListA中的最大数据元素,并打印输出到控制台

参考一下:

代码及效果图如下,如有帮助,请帮忙采纳一下,谢谢。

img


#include <iostream>
using namespace std;
#define N 20
struct LinkList 
{
    int arr[N];
    int length;
};

//创建链表
void CreateList(struct LinkList *lst)
{
    int i,n;
    lst->length = 0;
    printf("请输入数据(9个):");
    for (i=0;i<9;i++)
    {
        scanf("%d",&n);
        lst->arr[lst->length] = n;
        lst->length++;
    }
}


//插入元素,在6之后插入7
void Insert(struct LinkList *lst)
{
    int i,j;
    for (i=0;i<lst->length;i++)
    {
        if(lst->arr[i] == 6)
        {
            for(j = lst->length;j>i;j--)
                lst->arr[j] = lst->arr[j-1];
            lst->arr[i+1] = 7; //插入7
            lst->length += 1;
            break;
        }
    }
}


//显示列表
void print(struct LinkList *lst)
{
    int i;
    printf("链表当前元素为:");
    for (i=0;i<lst->length;i++)
    {
        if(i<lst->length-1)
            printf("%d ",lst->arr[i]);
        else
            printf("%d\n",lst->arr[i]);
    }
}

//找最大元素
int MaxNmb(struct LinkList *lst)
{
    int max = -1;
    int i;
    if(lst->length <1) return -1; //error
    else
    {
        max = lst->arr[0];
        for(i=0;i<lst->length;i++)
        {
            if(lst->arr[i] > max)
                max = lst->arr[i];
        }
        return max;
    }
}
int main()
{
    struct LinkList A;
    int maxnmb;
    CreateList(&A);
    Insert(&A);
    print(&A);
    maxnmb = MaxNmb(&A);
    printf("最大元素是:%d\n",maxnmb);
    return 0;
}