# include<iostream>
# include<string>
using namespace std;
typedef int DataType;
typedef struct node
{
DataType data;
struct node * next;
}LinkedNode,*LinkList;
LinkList create_list() { //创建单链表
DataType value[] = { 1,2,3,4,5,6,7,8,9 };
int len = sizeof(value) / sizeof(value[0]);
LinkedNode *head = NULL;
LinkedNode *temp = NULL;
LinkedNode *p = NULL;
head= (LinkedNode *)malloc(sizeof(LinkedNode));
head->data = value[0];
head->next = NULL;
temp = head;
for (int i = 1; i < len; i++)
{
p = (LinkedNode *)malloc(sizeof(LinkedNode));
p->data = value[i];
p->next = NULL;
temp->next = p;
temp = p;
}
temp->next = NULL;
return head;
}
void print(LinkList l) //打印单链表中数据
{
LinkedNode *temp =NULL;
if (l == NULL) return;
temp = l;
while (temp != NULL) {
cout << temp->data << "-->";
temp = temp->next;
}
cout << endl;
}
void inverse(LinkList h) //逆置单链表
{
LinkedNode *p = NULL;
LinkedNode *pr = NULL;
if (!h) {
return;
}
p = h->next;
pr = NULL;
while (p)
{
h->next = pr;
pr = h;
h = p;
p = p->next;
}
h->next = pr;
print(h);
return;
}
int main()
{
LinkList list = NULL;
list = create_list();
print(list);
inverse(list);
system("pause");
}
5.单链表创建、逆置
最新推荐文章于 2022-04-19 20:49:36 发布