单链表的创建—数据结构算法

代码功能截图:

源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include<stdio.h> // EOF(=^Z或F6),NULL
#include<stdlib.h> // srand( ) ,rand( ),exit(n)
#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define MAXSIZE 100 //最大长度
typedef int Status;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
 
 
Status InitList(LinkList &L){
L = new LNode;
L ->next = NULL;
return OK;
}
 
void CreateList_h(LinkList &L,int n)
{
 
L =new LNode;
L ->next = NULL;
for(int i=0;i<n;++i)
{
LNode *p;
p=new LNode;
//  printf("输入第%d个数据:",n);
//  scanf("%d",&p->data);
cin>>p->data;
p->next = L->next;L->next=p; //这是前插法
 
}
}
Status GetElem(LinkList L,int i,ElemType &e){
LNode *p;
p = L->next;int j= 1;
while(p&&j<1)
{
p = p->next;
++j;
}
if (!p|| j>1) return ERROR;
e = p->data;
return OK;
 
}
 
 
LNode *LocateElem(LinkList L,ElemType e)
{
LNode *p;
int i = 0;
p = L->next;
 
while (p && p->data != e)
p=p->next;
i = i+1;
return p;
}
 
Status LinkInsert(LinkList &L,int i,ElemType e)
{
LNode *p;
p = L;int j = 0;
while(p&&(j<i-1))
{
p = p->next;
++j;
}
if (!p || j>i -1) return ERROR;
LNode *s;
s = new LNode;
s->data = e;
s->next=p->next;
p->next =s;
return OK;
}
 
Status LinkDelete(LinkList &L,int i)
{
LNode *p;
p = L;int j = 0;
while((p->next) &&(j < i-1))
{
p = p->next;++j;
}
if (!(p->next) || (j>i-1)) return ERROR;
LNode *q;
q = p->next;
p->next = q ->next;
delete q;
return OK;
}
void Find(LinkList L){
LNode *p = L->next;
int i=0;
while(p){
i++;
printf("第%d个节点数据域为%d\n",i,p->data);
p = p->next;
}
}

  

注意这里没有写main()函数。获取源码请关注“值南针”微信公众号:手机登录复制粘贴或微信电脑端(要最新版微信pc端),最先版微信正在公测。

 

 

 

选择号直接下载保存下来。

posted @   值南针  阅读(576)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示