⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 习题05-逆置单链表.c

📁 数据结构各章实验源代码; 数据结构实验源代码
💻 C
字号:
#include  "datastru.h"
#include  <stdio.h>
#include  <malloc.h>

LINKLIST *invertlink(LINKLIST *head){
/*单链表元素逆置*/
  LINKLIST *p, *q, *r;

  q = NULL;  p = head;
  while(p != NULL)
     {r = q; q = p ;
      p = p->next;
	  q->next = r;}
  return q;
}

int count_nohead(LINKLIST *head){
/*不带头结点的单链表:输出单链表元素值并计数*/
  int i = 0;
  LINKLIST *p;
  p = head;
  printf("输出单链表元素值 : ");
  while(p != NULL)
   {printf("  %c",p->data);
    i++;
    p = p->next;}
  printf("\n");
  return i;
}

LINKLIST *creatlink_nohead_head(LINKLIST *head) {
/*用头插入法建立不带头结点的单链表*/
  LINKLIST  *t;
  char ch;

  printf("单链表元素值为单个字符, 连续输入,$为结束字符  : ");
  while((ch = getchar())!= '$')
   {	t = (LINKLIST *) malloc(sizeof(LINKLIST));
	    t->data = ch;
	    t->next = head;
      head = t;}
return(head);
}

main()
{
  LINKLIST *head = NULL;
  int  num;

  printf("\n    建立单链表\n\n");
  head = creatlink_nohead_head(head);
  fflush(stdin);
  num = count_nohead(head);
  printf("单链表元素个数 = %d\n", num);
  printf("\n    逆置单链表\n\n");
  head = invertlink(head);
  num = count_nohead(head);
}

⌨️ 快捷键说明

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