【数据结构C语言】使用struct结构体创建的链表增删改查操作
作者:
wen_3
,
2021-10-08 11:06:21
,
所有人可见
,
阅读 349
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct LNode{
int value;
struct LNode* next;
}Lnode, *LinkList;
void initLinkList(LinkList& L){
L = (LinkList)malloc(sizeof(LNode));
L -> next = NULL;
}
//获取第i个元素的值
int getElement(LinkList l,int k)
{
Lnode* p = l -> next;
int j = 1;
while(p && j ++< k){
p = p -> next;
}
return p -> value;
}
// 在第k个节点处加入一个新的节点
void addElement(LinkList l,int k,int x)
{
Lnode* p = l;
int j = 0; // j为记录当前是第几个节点,此代码中所有的j都是这个意思
while(p && j ++< k - 1){
p = p -> next;
}
LinkList s = (LinkList)malloc(sizeof(LNode));
s -> value = x;
s -> next = p -> next;
p -> next = s;
}
// 删除第k个节点
void deleteNode(LinkList& l,int k)
{
int j = 0;
while(l && j ++ < k - 1)
{
l = l -> next;
}
l -> next = l -> next -> next;
}
// 遍历一遍链表
void show(LinkList l)
{
LinkList p = l -> next;
while(p)
{
cout << p -> value << " ";
p = p -> next;
}
}