线性表链式存储操作(未定稿)

//线性表顺序存储
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;     
#define OK 1
#define ERROR 0
//线性表的单链表存储结构
typedef struct Node
{
	int data;
	struct Node* next;

}Node;
typedef struct Node* LinkList;//定义LinkList
//查找操作
//操作结果:用e返回l中第i个数据元素的值
int GetElem(LinkList L, int i, int* e)
{
	LinkList p;//声明一个结点p
	p = L->next;//让p指向链表L的第一个结点
	int j = 1;//j为计数器
	while (p && j < i)//p不为空或者计数器j还没有等于i时,循环继续
	{
		p = p->next;//让p指向下一个结点
		++j;
	}
	if (!p || j > i)//找到了第i个元素,但是第i个元素不存在
		return ERROR;
	*e = p->data;//取第i个元素的数据
	return OK;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C语言中的线性表可以使用链式存储结构来实现。链式存储结构是通过节点之间的指针连接来表示数据元素之间的逻辑关系。 在链式存储结构中,每个节点包含两部分信息:数据域和指针域。数据域用于存储具体的数据元素,而指针域用于指向下一个节点的地址。 链表的头节点是链表的入口,通过头节点可以找到整个链表链表的最后一个节点的指针域为空,表示链表的结束。 以下是C语言中线性表链式存储的一般实现方式: ```c // 定义链表节点结构 typedef struct Node { int data; // 数据域 struct Node* next; // 指针域,指向下一个节点 } Node; // 初始化链表 void initList(Node** head) { *head = NULL; // 头节点为空 } // 在链表末尾插入元素 void insert(Node** head, int value) { Node* newNode = (Node*)malloc(sizeof(Node)); // 创建新节点 newNode->data = value; newNode->next = NULL; if (*head == NULL) { *head = newNode; // 如果链表为空,新节点为头节点 } else { Node* temp = *head; while (temp->next != NULL) { temp = temp->next; // 找到链表的最后一个节点 } temp->next = newNode; // 将新节点插入到最后一个节点的后面 } } // 遍历链表并打印元素 void printList(Node* head) { Node* temp = head; while (temp != NULL) { printf("%d ", temp->data); temp = temp->next; } printf("\n"); } ``` 这是一个简单的链表实现,你可以通过调用`initList`函数初始化链表,使用`insert`函数在链表末尾插入元素,使用`printList`函数遍历链表并打印元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值