2019/3/29
尾插法
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TUqNGaKdEZsVjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmLzITN1EzM0MjM0IDNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
#include<iostream>
using namespace std;
typedef struct LNode {
int data;
struct LNode *next;
} LinkNode;
//尾插法
void CreateListR(LinkNode * &L, int a[], int n) {
LinkNode *s, *r;
L = (LinkNode *)malloc(sizeof(LinkNode));
r = L;
for(int i = 0; i < n; i++) {
s = (LinkNode *)malloc(sizeof(LinkNode));
s->data = a[i];
r->next = s;
r = s;
}
r->next = NULL;
}
void InitList(LinkNode * &L) {
L = (LinkNode *)malloc(sizeof(LinkNode));
L->next = NULL;
}
void DispList(LinkNode * L) {
LinkNode *p = L->next;
while(p != NULL) {
cout << p->data;
p = p->next;
}
cout << endl;
}
int main() {
LinkNode *h;
InitList(h);
int a[10] = {0};
CreateListR(h, a, 10);
DispList(h);
return 0;
}
2019/3/19
連結清單的插入結點操作:
删除結點:
#include<stdio.h>
#include<stdlib.h>
//初始化五個節點
struct node
{
int data;
node *next;
};
int main()
{
node *head,*p1,*p2;
int i;
head = 0; //頭結點初始化
for (i = 1; i <= 5; i++)
{
p1 = (node *)malloc(sizeof(node)); //開辟新空間
p1->data = i;
if(head == 0)
{
head = p1; //頭指針指向p1結點
p2 = p1; //p2也指向p1結點(為"p2->next = p1"作準備)
//p1->next = p1不可取,因為每次p1是新的
//并不可以取消掉p2,
}
else
{
p2->next = p1; //尾結點p2連上下一個新結點p1
p2 = p1; //p2指向新結點p1(為下一個連接配接作準備)
//因為每次p1都在更新,是以每次需要p2來進行中介的指向操作
}
}
p2->next = 0;
//删除資料為2的連結清單結點
p1 = head;
while(p1->data != 2)
{
p2 = p1;
p1 = p1->next;
}
p2->next = p1->next; //将p1->next(也就是3)連接配接上p2->next(p2是1,p2->next被指派為3)
delete p1; //删除2
//輸對外連結表資料
node *p;
p = head;
printf("連結清單上各結點的資料為:");
while(p != 0)
{
printf("%d ",p->data);
p = p->next;
}
printf("\n");
re
百度文庫上的一個PPT:https://wenku.baidu.com/view/d6c490e0ba4cf7ec4afe04a1b0717fd5370cb24a.html