zoukankan      html  css  js  c++  java
  • c语言编程之双向循环链表

      双向循环链表就是形成两个环,注意每个环的首尾相连基本就可以了。

      程序中采用尾插法进行添加节点。

      1 #include<stdio.h>
      2 #include<stdlib.h>
      3 #define element int
      4 typedef struct Node{
      5         element data;
      6         struct Node *next;
      7         struct Node *prior;
      8 }*pNode;
      9 
     10 //build a new double loop list
     11 element Init_list(pNode p)
     12         {
     13          //pNode r=NULL;
     14          //*p=(pNode)malloc(sizeof(pNode));
     15          p->next=p;
     16          p->prior=p;
     17          return 0;
     18 }
     19 //creat a new double loop list
     20 element Build_list(pNode *L,element num)
     21         {
     22           pNode p=NULL;
     23           pNode r=NULL;
     24           int i=0;
     25           int j=0;
     26           p=*L;
     27           for(j=0;j<num;j++)
     28             {
     29                r=(pNode)malloc(sizeof(pNode));
     30                r->data=j;
     31                p->next=r;
     32                r->prior=p;
     33                r->next=p;
     34                p->prior=r;
     35                printf("flag:%d
    ",p->next->data);
     36                p=r;
     37                //printf("flag:%d
    ",p->next->data);
     38            }
     39            return 0;
     40 }
     41 element Print_list(pNode L)
     42         {
     43           if(!L)
     44            {
     45               printf("it is empty
    ");
     46            }
     47           pNode p=L;
     48           p=p->next;
     49           int i=0;
     50           while(i<16)
     51             {
     52                 printf("data:%d
    ",p->data);
     53                 p=p->next;
     54                 i++;
     55             }
     56 
     57            return 0;
     58 }
     59 int main()
     60         {
     61           pNode P=NULL;
     62           pNode M=NULL;
     63           P=(pNode)malloc(sizeof(pNode));
     64           Init_list(P);
     65           M=Build_list(&P,10);
     66           Print_list(P);
     67           return 0;
     68 }
  • 相关阅读:
    JS 缓存
    时区转换
    JQuery easy UI 通过updateRow 排序
    SqlServer2008 数据库同步的两种方式
    C#各种辅助类收集(CSharpCommonHelper)
    Doc命令收集(一)
    Sql Server Alter语句
    JQuery easy UI updateRow
    Doc命令收集(二)
    六大开源搜索引擎工具
  • 原文地址:https://www.cnblogs.com/qiuheng/p/5840407.html
Copyright © 2011-2022 走看看