GetElem操作
Status GetElem_L(LinkList L, int i, ElemType &e){
//L 为头指针,i为要获得的位置;
p = L ->next; j = 1;
while( p && j <i ){
p = p -> next;
j++;
}
if(!p || j > i) return ERROR;
e = p ->data;
return ok;
}
插入操作
Status ListInsert_L(LinkList &L, int i, ElemType e){ //第i个位置前插入节点
p = L; j = 0;
while( p && j < i-1){
p = p -> next;
++j;
}
if(!p || j> i - 1) return ERROR;
s = (LinkList )malloc(sizeof(LNode)); //生成新节点
s->data = e;
s->next = p->next;
p->next = s;
return ok;
}
删除操作
Status ListDelete_L(LinkList &L, int i, ElemType &e){
//删除第i个元素,并有e作为返回值
P = L; j = 0;
while( p->next && j < i-1) {
p = p ->next;
j++;
}
if(!(p->next) || j > i-1) return ERROR; //删除位置不合理
q = p->next;
p->next = q->next;
e = q->data;
free(q);
return ok;
}
分享到:
相关推荐
下面,我们将详细讨论一些常见的数据结构和操作,以及如何将它们从伪代码转化为C语言源代码。 1. **线性表**: - **尾插法建立单链表**:在单链表的末尾添加元素。首先,创建头节点,然后通过循环接收用户输入,为...
以下是插入操作的伪代码表示: ```python def insert_sorted(head, x): new_node = Node(x) # 创建新节点 current = head # 从头节点开始遍历 # 查找插入位置 while current.next is not None and current....
在伪代码中,这个过程可以表示为: ```c insert_head() { 第 1 步: 新节点的 pNext 指向原来的第一个节点 第 2 步: 头节点的 pNext 指向新节点的地址 } ``` 具体到C语言的实现,代码如下: ```c void insert_...
数据结构伪代码转化成为可执行源代码 这篇文章主要介绍了数据结构的伪代码转化成为可执行源代码的方法,提供了多种数据结构的实现代码,如线性表、栈、队、串、树等,并且提供了详细的注释和示例代码,适合初学者...
实验报告可能会详细解释这些函数的实现原理,包括伪代码、具体C代码以及可能的测试用例。通过实际编程实践,学习者能更好地理解单链表的工作机制,并提升编程能力。 总结来说,单链表是一种重要的数据结构,理解和...
以下是伪代码示例: ```python def merge_sorted_lists(list1, list2): dummy = ListNode(0) # 创建虚拟头节点 current = dummy # 初始化当前节点为虚拟头节点 while list1 and list2: # 当两个链表都不为空时 ...
根据给定的文件信息,我们将深入探讨如何将一个单链表转换为三个单循环链表,这涉及到数据结构中的链表操作以及字符分类处理。在理解这个过程之前,我们需要先了解链表的基本概念以及C语言中如何实现链表。 ### ...
### 数据结构伪代码转化为可执行源代码的知识点 #### 一、概述 本文档主要介绍了如何将数据结构中的伪代码转换成实际可执行的源代码。文档覆盖了多个数据结构和算法的基础操作,包括线性表、栈、队列、字符串、树...
在实际编程中,你可以使用如下的伪代码来实现这个过程: ```python class ListNode: def __init__(self, x): self.val = x self.next = None def reverseList(head): pre, cur = None, head while cur: next...
### 数据结构算法伪码汇总 #### 专题一线性表 **1. 线性表基本操作** 线性表是数据结构中最基础的一... 上述代码片段未完整显示如何删除最小值结点的部分,但在实际操作中,可以根据上述逻辑完成这部分缺失的功能。
冒泡排序伪代码 - 初始化一个最大索引 `maxIdx`,表示当前未排序部分的最后一个元素。 - 在外层循环中,每完成一次内层循环,最大索引减一,表示已排序部分增加一个元素。 - 内层循环中,比较相邻两个元素,如果前...
以下是一个简单的电话本功能实现的伪代码: ```python class PhoneBook: def __init__(self): self.head = None def insert(self, name, phone): # 创建新节点,插入到正确位置 def delete(self, name): # ...
严蔚敏教授的《数据结构》是一本经典的教材,它深入浅出地讲解了各种数据结构及其算法,并且提供了丰富的伪代码来帮助理解。在这个压缩包中,包含了该书各个章节的C语言实现,使得理论知识与实践操作相结合,对于...
头插法的伪代码描述为: ``` a:Node <T> * s=new Node b:s->data=a[i] c:s->next=front->next d:front->next=s ``` 尾插法的伪代码描述为: ``` a:Node <T> * s=new Node b:s->data=a[i] c:r->next=s d:r=s ``` 3....
leetcode伪代码数据结构与算法 该目录包含以下数据结构和算法实现以及项目和问题解决。 数组 矩阵旋转 90 度到位。 创建数组类:insert()、removeAt()、indexOf()、print()、max()、reverse()、insertAt()。 链表 ...
以下是一个简单的伪代码示例: ```python class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def insert_sorted(head, new_node): if not head or new_node.val new_...
虽然题目主要关注查找,但插入和删除也是单链表操作的重要组成部分。插入新节点时,需要找到插入位置的前一个节点,然后修改其链接域以指向新节点。删除节点时,需要找到要删除节点的前一个节点,然后更新它的链接...
- **算法分析与设计**:针对每项操作进行详细的算法分析,并给出相应的伪代码或流程图。 #### 实验细节分析 ##### 单链表的创建 - **初始化链表**:首先定义一个指向`LNode`类型的指针`L`,并为其分配内存空间,...
以下是头插法的伪代码: ```python def head_insert(head, new_data): new_node = Node(new_data) if not head: # 如果链表为空 head = new_node else: new_node.next = head head = new_node return head `...