b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

不带头结点的单链表

电脑杂谈  发布时间:2019-08-01 20:08:42  来源:网络整理

c# 自己写的链表类 如何释放其中的结点空间_二叉树的叶子结点连成链表_不带头结点的单链表

free(*L);

*L = p;

}

}

/*清空单链表*/

void ClearList(LinkList *L) {

DestroyList(L);

}

/*批量录入数据:头插法*/

void HeadCreate(LinkList *L) {

int elem; Node *p;

while (scanf_s("%d", &elem), elem != -1) {

if (*L == null) {

*L = (LinkList)malloc(sizeof(Node));

if (*L == null) exit(-1);

(*L)->data = elem;

(*L)->next = null;

}

else {

p = (LinkList)malloc(sizeof(Node));

if (!p) exit(-1);

p->data = elem;

p->next = (*L)->next;

(*L)->next = p;

}

}

}

/*批量录入数据:尾插法*/

void TailCreate(LinkList *L) {

二叉树的叶子结点连成链表_不带头结点的单链表_c# 自己写的链表类 如何释放其中的结点空间

int elem; Node *tail = null,*p;

while (scanf_s("%d", &elem), elem != -1) {

if (*L == null) {

*L = (LinkList)malloc(sizeof(Node));

if (*L == null) exit(-1);

(*L)->data = elem;

(*L)->next = null;

tail = *L;

}

else {

p = (LinkList)malloc(sizeof(Node));

if (!p) exit(-1);

p->data = elem;

p->next = null;

tail->next = p;

tail = p;

}

}

}

/*统计结点的个数*/

int TotalNum(LinkList *L) {

int count = 0;//计数器

LinkList p = *L;

for (; p; p = p->next)

++count;

return count;

}

/*在表尾追加元素value*/

void AddToTail(LinkList *L,int value) {

c# 自己写的链表类 如何释放其中的结点空间_二叉树的叶子结点连成链表_不带头结点的单链表

Node *p = null,*q = null;

if (*L == null) {

*L = (LinkList)malloc(sizeof(Node));

if (*L == null) exit(-1);

(*L)->data = value;

(*L)->next = null;

}

else {

for (p = *L; p->next != null; p = p->next)

;

q = (LinkList)malloc(sizeof(Node));

if (!q) exit(-1);

q->data = value;

q->next = p->next;

p->next = q;

}

}

/*删除第一个值是value结点*/

void Remove(LinkList *L,int value) {

if (*L == null)

return;

Node *p = *L,*q;

while (p && p->data != value) {

p = p->next;

}

if (!p) {

printf("没有该元素!\n"); return;

}

if (p == *L) {

不带头结点的单链表_c# 自己写的链表类 如何释放其中的结点空间_二叉树的叶子结点连成链表

if (p->next == null) {

*L = null;

free(p);

}

else {

p = (*L)->next;

(*L)->data = (*L)->next->data;

(*L)->next = (*L)->next->next;

free(p);

}

}

else {

if (p->next != null) {

p->data = p->next->data;

q = p->next;

p->next = q->next;

free(q);

}

else {

printf("无法删除,请采用伴随扫描指针的方法删除。\n");

return;

}

}

}

/*打印单链表*/

void Print(LinkList *L) {

if (*L == null)

return;

Node *p = *L;

c# 自己写的链表类 如何释放其中的结点空间_二叉树的叶子结点连成链表_不带头结点的单链表

for (; p; p = p->next) {

printf("%d ", p->data);

}

printf("\n");

}

/*递归逆序打印单链表*/

void FromTailPrint(LinkList *L) {

if (*L == null)

return;

FromTailPrint(&(*L)->next);

printf("%d ", (*L)->data);

}

int main() {

LinkList L;

InitList(&L);

TailCreate(&L);

fflush(stdin);

printf("打印单链表\n");

Print(&L);

printf("单链表结点的个数是:%d\n", TotalNum(&L));

printf("删除9\n");

Remove(&L, 9);

printf("打印单链表\n");

Print(&L);

printf("追加10\n");

AddToTail(&L, 10);

printf("逆序打印单链表\n");

FromTailPrint(&L);

system("pause");

return 0;

}

本文永久更新链接地址:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-117538-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 杨云超
        杨云超

        去年买盒感康13今年18

      热点图片
      拼命载入中...