ch2_ltable.c

来自「本人讲授数据结构课程时的所写的示例程序」· C语言 代码 · 共 75 行

C
75
字号
/*
表的链式实现(插入操作保持)
author: kk.h
date: 2006.9
http://www.cocoon.org.cn
*/

#include "stdio.h"
/* 数据元素的类型 */
typedef struct{
  int no;
  int grade;
}ElemType;

/* 链表节点的类型(包括头节点) */
typedef struct Node{
  ElemType elem;
  struct Node *next;
}LNode;

/* 在头节点之后插入一个新节点 */
ListInsert(LNode* pL1,ElemType e)
{
  LNode* node;
  node = (LNode*)malloc(sizeof(LNode));
  node->elem = e;
  node->next = pL1->next;
  pL1->next = node;
}

/* 显示链表中所有元素 */
ShowList(LNode* pL1)
{
  LNode *node;
  node = pL1->next;
  while(node){
    printf("\n  (%d,  %d)",node->elem.no,node->elem.grade);
    node=node->next;
  }
}

/* 释放链表空间 */
DestroyList(LNode* pL1)
{
  LNode *node;
  node = pL1;
  while(node){
    pL1=pL1->next;
    free(node);
    node=pL1;
  }
}
main()
{
  /*分配一个头节点,代表一个链表*/
  LNode *pL1;
  ElemType e;

  pL1 = (LNode*)malloc(sizeof(LNode));
  pL1->next=NULL;

  e.no=1;e.grade=85;
  ListInsert(pL1,e);
  e.no=3;e.grade=70;
  ListInsert(pL1,e);
  e.no=7;e.grade=90;
  ListInsert(pL1,e);

  ShowList(pL1);

  DestroyList(pL1);

  getch();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?