10.15

单链表

include

using namespace std;
typedef struct LNode
{
int data;
struct LNode* next;
}LNode,*LinkList;
int length = 0;
void initLNode(LinkList& L)
{
L = new LNode;
L->next = NULL;
}
bool insert(LinkList& L, int i, int e)
{
if (i<1 || i>length + 1)return false;
LinkList p = L;
int j = 0;
while (p && j < i - 1)
{
p = p->next;
j++;
}
LinkList s = new LNode;
s->data = e;
s->next = p->next;
p->next = s;
length++;
return true;
}
bool remove(LinkList& L, int i, int& e)
{
if (i<1 || i>length )return false;
LinkList p = L;
int j = 0;
while (p && j < i - 1)
{
p = p->next;
j++;
}
LinkList q = p->next;
e = q->data;
p->next = q->next;
delete q;
length--;
return true;
}
int getPosition(LinkList& L, int e)
{
int pos = 1;
LinkList p = L->next;
while (p)
{
if (p->data == e)
{
return pos;
}
p = p->next;
pos++;
}
return -1;
}
void print(LinkList& L)
{
LinkList p = L->next;
for (int i = 0; i < length; i++)
{
cout << p->data << " ";
p = p->next;
}
}
int main()
{
int e;
LinkList L;
initLNode(L);
insert(L, 1, 2);
insert(L, 2, 4);
insert(L, 3, 9);
insert(L, 4, 3);
print(L);
cout << endl;
remove(L, 2, e);
print(L);
cout << endl;
cout << e << endl;
cout << getPosition(L, 3) << endl;
}

posted @ 2025-10-26 20:21  苏楗轶  阅读(3)  评论(0)    收藏  举报