0%

2_1.cpp 顺序表

2017年9月17日 下午4:15

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
//2_1.cpp
#include <iostream>
using namespace std;
#define maxSize 100
// 顺序表结构定义
typedef struct {
int data[maxSize];
int length;
}SqList
//顺序表的第二种定义方式
int data[maxSize];
int length;

// 单链表结构体定义
typedef struct LNode{
int data;
struct LNode *next;
}LNode;

//双链表结构体定义
typedef struct DLNode
{
int data;
struct DLNode *prior;
struct DLNode *next;
}DLNode;
//动态分配内存
LNode *A = (LNode * )malloc(sizeof DLNode);

// 顺序表的findElem 返回第一个比x大的元素的位置
int findElem(SqList L,int x){
int i = 0;
for(i = 0; i < l.length;i++){
if(L.data[i] > x){
return i;
}
}
return i;
}
// 顺序表的findElem 返回e元素的位置 如果没有则返回-1
int findElem(SqList L,int e){

for(int i = 0; i < L.length;i++){
if(l.date[i] = e){
return i;
}
}
return -1;
}


// 顺序表insertElem() 按顺序插入
void insertElem(SqList &L,int x){
int p;
p = findElem(L,x);
// 后移动
for(int i = L.length-1; i >= p ;i-- ){
L.data[i+1] = L.data[i];
}
L.data[p] = x;
++(L.length);//lenght要记得加一
}


// 顺序表插入元素的算法 按指定位置插入
int insertElem(SqList &L,int p ,int e){//要对p的位置进行限定
if(L.length < p || p < 0 || L.length == maxSize){//这里p = l.length也行,并且要对maxSize进行判断
return -1;
}
for(int i = L.length; i >= p ;i++){
L.data[i+1] = L.data[i];
}
L.data[p]=e;
(L.length)++;
return 1;
}

// 顺序表删除指定位置元素,并将删除元素赋值给e,成功返回1,否则返回0
int deleteElem(SqList L, int p ,int &e){//忘了设置e的值了
if(p > L.length-1 || p<0 )return 0;

// L.data[L.length-1] = ;//这里不用担心最后一个位置元素的值,因为L.lenght就限定死了
e = L.data[p];
for(int i = p; i < L.length-1 ;i++){
L.data[i] = L.data[i+1];
}
(L.length)--;
return 1;
}

//顺序表的初始化
void initList(SqList &L){
L.length=0;
}

//顺序表求指定位置元素
int getElem(SqList &L,int p ,int &e){
if(p < 0 || p >= L.length) return 0;
e = L.data[p];
return 1;
}


int main(){

cout<<"hello world"<<endl;
return 0;
}