上海花千坊

C语言

C语言链表逆序方法技巧

时间:2024-08-21 13:32:50 C语言 我要投稿
  • 相关推荐

C语言链表逆序方法技巧

   C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。下面是小编为大家搜索整理的C语言链表逆序方法技巧,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!

  简洁的做法是

  遍历链表,

  元素进栈,

  遍历的同时销毁原来的链表。

  元素出栈,

  建立新链表。

  高效的是,

  用指向链表结点指针的指针操作

  直接首尾交换指针值(两两进行)

  一般的是前插法

  实际上根本就不用插入,一次遍历就可以完成了。

  链表的逆序,必将涉及到两个以上指针,一般用三个指针,

  下面是一个人的程序:

  struct List1 *reverse(List1 *h) //h为链表的头指针

  {

  struct List1 *p,*v1,*v2;

  v2=h;

  v1=NULL;

  while( v2!=NULL ){

  p=v2->pNext;

  v2->pNext=v1;

  v1=v2;

  v2=p;

  }

  return v1;

  }

  另一个人的:

  struct IntNode* res(struct IntNode* h)

  {

  struct IntNode *s, *s1;

  s = h;

  h = NULL;

  while (s)

  {

  s1 = s;

  s = s->next;

  s1->next = h;

  h = s1;

  }

  return h;

  }

   算法都是一致,但顺序不一样,这直接点明了链表操作的核心——顺序,链表的算法主要难在顺序上。

  逆序操作中,要将一个指针指向前一个节点,中间必然断开,这就需要两个指针指向断开处的一前一后。

  上面两个程序都是这样,不同在于指针移动的位置。

【C语言链表逆序方法技巧】上海花千坊相关的文章:

C语言的循环链表和约瑟夫环09-29

c语言空间换时间优化代码的技巧方法06-19

C语言头文件避免重复包含的方法技巧08-28

C语言左右法则的技巧10-03

C语言的reduce方法应用10-22

C语言的冒泡排序方法08-22

Java程序调用C/C++语言函数的方法07-31

C语言返回多个值的方法07-07

C#数据结构之循环链表的实例代码10-22

C语言入门的基本学习方法09-29