数据结构 用C语言实现顺序表的建立及遍历

数据结构 用C语言实现顺序表的建立及遍历,第1张

#include <stdio.h>

#include <malloc.h>

typedef struct nlist

{

    int *np

    int len//已使用地址个数

    int maxlen//最大地址个数

}NLT

NLT *createlist()//创建顺序表

int addtolist(NLT *nlist)//向顺序表插入元素

void pList(NLT *nlist)//遍历顺序表

int main()

{

    int i

    NLT *nlist=createlist()

    if(nlist)

    {

        for(i=0i<nlist->maxleni++)

            addtolist(nlist)

        pList(nlist)

    }

    return 0

}

void pList(NLT *nlist)//遍历打印,空格分割,最后一个数后面没有空格

{

    int i

    for(i=0i<nlist->len-1i++)

        printf("%d ",nlist->np[i])

    printf("%d",nlist->np[nlist->len-1])

}

NLT *createlist()

{

    NLT *nlist=NULL

    nlist=(NLT *)malloc(sizeof(NLT))

    scanf("%d",&nlist->maxlen)

    nlist->np=(int *)malloc(sizeof(int)*nlist->maxlen)

    if(!nlist || !nlist->np)

    {

        printf("内存申请失败!\n")

        return NULL

    }

    nlist->len=0

    return nlist

}

int addtolist(NLT *nlist)

{

    if(nlist->len<nlist->maxlen)//如果存储空间未满,保存元素,保存成功返回1 失败返回0

    {

        scanf("%d",&nlist->np[nlist->len])

        nlist->len++

        return 1

    }

    else //这里可以写当存储满的之后,空间扩容,本题用不到所以我不写了

        return 0

}

1、单链表中头结点有两个作用:一是标识该链表的存在,而是可以通过头结点遍历整个链表。所以不能通过移动头结点指针遍历链表,因为一旦移动了,下次就无法定位该链表。

2、例程:

#include "stdio.h"

#include "stdlib.h"

#define NULL 0

#define Error 0

typedef struct LNode{

int data

struct LNode *next

}LNode,*LinkList

LinkList CreatList(LinkList,int)

LinkList CreatList(LinkList L,int n)

 

{

LinkList p

int i

L=(LinkList)malloc(sizeof(LNode))

L->next=NULL

for(i=ni>0--i){

p=(LinkList)malloc(sizeof(LNode))

scanf("%d",&p->data)

p->next=L->next

L->next=p

}

return L

 

}

void Getelem(LinkList L)

 

//遍历链表

{

LinkList q

q=L->next

for(q->nextqq=q->next)

printf("%d",q->data)

}

 

void main(){

LinkList L

int a

 

puts("请输入链表长度:")

scanf("%d",&a)

L=CreatList(L,a) //L要接收函数返回指针

Getelem(L)

 

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10858934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存