當前位置:編程學習大全網 - 編程軟體 - 數據結構題設計壹個算法,要求用棧結構將帶頭結點的單鏈表逆置。寫出完整的程

數據結構題設計壹個算法,要求用棧結構將帶頭結點的單鏈表逆置。寫出完整的程

#include <stdio.h>

#include <stdlib.h>

#include <time.h>typedef struct Node

{

int data;

struct Node * next;

}Node, * LinkList;void ListReverse(LinkList L)

{

Node *p,*q;

p=L->next;

L->next=NULL;

while(p)

{

q=p->next;

p->next=L->next;//頭插法

L->next=p;

p=q;

}

}/*逆置函數*/void InitList(LinkList *L)

{

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

(*L)->next = NULL;

}void CreateListHead(LinkList L)//頭插法創建

{

Node *s;

int i=0;

srand((unsigned)time(NULL));

while(i<10)

{

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

s->data=rand()%99+10;

s->next=L->next;

L->next=s;

i++;

}

}void DestoryList(LinkList L)

{

Node * p; p = L->next;

while(p)

{

L->next = p->next;

free(p);

p = L->next;

}

free(L);

}void TraverseList(LinkList L)//顯示

{

Node * p;

p = L->next;

while(p)

{

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

p = p->next;

}

printf("\n");

}

int main()

{

LinkList L;

InitList(&L);

CreateListHead(L);

TraverseList(L); ListReverse(L);

printf("逆置後:\n");

TraverseList(L); DestoryList(L); return 0;

}

  • 上一篇:匯編程序和匯編源程序有什麽區別?兩者的作用是什麽?
  • 下一篇:幼兒園推進steam教育的途徑有哪些?
  • copyright 2024編程學習大全網