#include <iostream>
#include <cstdlib>
#define ElemType int
using namespace std;
typedef struct Node {
int val;
Node *next;
}Node, *LinkList;
int Init_node(LinkList& L){
L = (LinkList)malloc(sizeof(Node));
L -> next = NULL;
}
int ListInsert_L(LinkList& L, ElemType e){
Node *p;
p = L;
Node *s;
s = (LinkList)malloc(sizeof(Node));
if( p -> next == NULL)
{
s -> val = e;
p -> next = s;
s -> next = NULL;
return 1;
}
while(((p -> next) -> val) < e)
{
p = p -> next;
if( p -> next == NULL)
{
break;
}
}
s -> val = e;
s -> next = p -> next;
p -> next = s;
}
int DeleteNode(LinkList& L, int num, int e) {
Node *p = L;
int i = 1;
while( i < num)
{
p = p -> next;
i++;
}
e = p -> next -> val;
p -> next = p -> next -> next;
return e;
}
int Show_node(LinkList& L){
Node *p = L -> next;
while(p != NULL)
{
cout << p -> val <<" ";
p = p -> next;
}
cout << endl;
}
int main()
{
Node *L;
Init_node(L);
cout << "L链表的插入过程: " << endl;
int n;
cout << "Please input n:" << endl;
cin >> n;
cout << "Please input node's val:" << endl;
int e;
for( int i = 0; i < n; i++){
cin >> e;
ListInsert_L(L,e);
}
cout << "output the LinkList:" << endl;
Show_node(L);
cout << endl;
int x;
cout << "please input x that will be insert:" << endl;
cin >> x;
ListInsert_L(L, x);
cout << "output the LinkList after insert:" <<endl;
Show_node(L);
cout << endl;
int y;
int z;
cout << "plesse input y th that will be delete : " << endl;
cin >> y;
cout << "the " <<y << "th will be delete:" << endl;
z = DeleteNode(L, y, z);
cout << "Delete the " << y << "th node is: " << z << endl;
cout << "output the LinkList after delete:" << endl;
Show_node(L);
cout << endl;
}
数据结构——有序单链表的建立、插入与删除
最新推荐文章于 2023-01-24 21:47:08 发布