1. 程式人生 > >建立單鏈表並賦值,要求遍歷能輸出1~9

建立單鏈表並賦值,要求遍歷能輸出1~9

      用表頭建立單鏈表,用頭插法建立連結串列,遍歷的結果是9 8 7 6 5 4 3 2 1

      具體的源程式如下:

#include <stdio.h>
#include <stdlib.h>

#define OK            0
#define ERROR        -1
#define MALLOC_ERROR -2 

typedef int ElementType;
typedef struct node
{
	ElementType data;    
	struct node *next;   
}Node;
typedef Node *PNode;  

int Create_List_Head(PNode h, ElementType data)
{
	if (h == NULL)
	{
		return ERROR;
	}
	
	PNode node = (PNode)malloc(sizeof(Node)/sizeof(char));
	if (node == NULL)
	{
		return MALLOC_ERROR;
	}
	node->data = data;
	node->next = h->next;
	h->next = node;
	
	return OK;
}



void DisPlay(PNode h)
{
	if (h == NULL)
	{
		return;
	}
	PNode temp = h->next;  // 連結串列第一個結點指標
	while (temp)
	{
		printf ("%4d", temp->data);
		temp = temp->next;
	}
	
	printf ("\n");
}

int main()
{
	PNode head_node = (PNode)malloc(sizeof(Node)/sizeof(char));
	if (head_node == NULL)
	{
		return ERROR;
	}
	head_node->next = NULL;   
	
	
	int i = 1;
	for (i = 1; i < 10; i++)
	{
		
 		if (Create_List_Head(head_node, i) != OK)
		{
			return ERROR;
		}  
	
	}
	DisPlay(head_node);
	
	return 0;
}

 

相關推薦

建立單鏈要求輸出1~9

      用表頭建立單鏈表,用頭插法建立連結串列,遍歷的結果是9 8 7 6 5 4 3 2 1       具體的源程式如下:#include <stdio.h> #include &

R語言-迴圈產生變數名應用到 ggolot2 迴圈作圖

問題的起源來自,想要批量出數十張組合好的圖。 實現過程中,最大的問題是如何實現:迴圈產生變數名,並對其將ggplot的一長段作圖程式碼傳送給該變數名。   最終使用assign函式解決了   首先產生1000個字串格式的備用變數名: p <- c(paste0('p

建立單鏈原地將連結串列逆序

#include<iostream> #include<stdio.h> using namespace std; #define MAXSIZE 5 #define ERROR -1; #define CORRECT 1; typedef struct List{

java實現---查詢單鏈的中間節點要求只能一次連結串列

定義兩個節點,一個快,一個慢 快的一次走兩步;慢的一次走一步 當快的走到連結串列的最後時,慢的剛好走到一半,即連結串列的中間節點 class ListNode{ int data; ListNode next; } public class

建立單鏈找到中間數

題目:建立單鏈表並找到中間數 普通方法就是先遍歷一遍連結串列知道了單鏈表的長度N,然後再從頭找到N/2時候的數。這種方法時間複雜度為O(N+N/2)=O(3N/2)。 在優化一下這個方法,可以利用快慢指標,也就是設定兩個指標,然後快的一次移動兩個,慢的一次移動一個位置。總體程式碼(C語言):

Java建立單鏈直接選擇排序輸出

RT 寫Java也一年左右了,第一次用Java寫單鏈表。。。 廢話少說,程式碼如下: import java.util.Scanner; public class Exp1 { public s

jquery 子窗體獲取父窗體控制元件後臺呼叫前臺指令碼或者在後臺直接寫指令碼

子窗體前臺指令碼方法,獲取父窗體的控制元件並賦值,使用iframe了: <script type="text/javascript"> function SetCou

查詢單鏈的中間結點要求只能一次連結串列

pNode FindMiddleNode(pList plist) { /* 快慢指標,快的兩步,慢的一步 */ pNode pFast = plist; pNode pSlow = plist; while (pFast&&pFast->n

單鏈與List究竟哪個速度快?

firelong雄文又起,不過說實話,可能是這篇文章寫的太簡單了,其中的理由和結論都聽得不是很明白。當然有一段話的意思很清楚(原話):“C#事件的背後是一個委託連結串列(單鏈表),單鏈表的遍歷呼叫效能遠低於陣列連結串列(List<T>)”。這句話讓我比較納悶,因為從我的直覺來說,兩種做法之間即使效

【資料結構作業五】以鄰接作儲存結構廣度圖的優先搜尋序列

#include <iostream> #define MVNum 100 #define MAXQSIZE 100 using namespace std; typedef char ElemType; typedef int QElemType; typed

獲取數值型數組的最大和最小使用獲取每一個然後記錄最大和最小的方式。(數組嵌套if判斷語句)

if判斷 增強 ++ pre sta 方法 最小值 test 記錄 package com.Summer_0420.cn; /** * @author Summer * .獲取數值型數組的最大值、最小值 * 方法:遍歷獲取每一個值,記錄最大值; *

資料結構--C語言--逆序建立單鏈單鏈單鏈第5個元素前插入一個為999的元素刪除單鏈第5個元素

#include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define LEN sizeof(struct LNode) struct LNode{ int data; struct LNode

已知線性中元素以遞增有序排列單鏈作為儲存結構設計一個演算法刪除相同的多餘元素

/* 已知線性表中元素以值遞增有序排列,並以單鏈表作為儲存結構 * 設計一個演算法,刪除表中值相同的多餘元素 * 使得操作後表中所用元素值均不同,同時釋放被刪除的結點空間 */ #include<stdio.h> #inclu

建立一個public static final 型別的map 初值並且只能在初始化的時間而不中途修改它的

1.寫法一  :可以寫在一個靜態的接口裡面,介面中宣告一些靜態常量,直接呼叫 public static interface ITicketPublisher {// 票卡發行方public static final int CHINA_MOBILE      = 0x05

c#+arcgisengine 對屬性建立欄位項、(或對已有欄位項進行更改)

            while (pFeature != null)            {                string[] fldvalue = new string[pFields.FieldCount];                for (int i = 0; i <

順序建立 刪除插入--- C語言的實現

順序表的基本概念自行百度解決,這裡主要記錄的是順序表用C實現的原始碼#include <stdio.h>#include <stdlib.h>#define maxsize 10typedef struct{int data[maxsize];int

判斷一個單鏈是否帶環求出環的長度及環的入口點

單鏈表是否帶環? 用快慢指標分別遍歷這個單鏈表,如果快慢指標能相遇,就代表有環的存在。 環的長度? 當快慢指標相遇時,記錄當前位置,然後走一圈的長度就是環的長度。 環的入口點? 設快指標F走兩個結點,慢指標S走一個結點。 F=2*S;     &nb

109-宣告第一個變數給它使用它

計算機程式的執行其實就是對資料的操作,資料通過變數在計算機中儲存。 變數的宣告:宣告就是建立,宣告變數需要指定型別和變數名。 <type> <name>; 例項:(每一個宣告都是一條語句,語句以;結束) int age; int hp; string name

定義一個數組陣列初始長度由控制檯獲取 。隨後手動給陣列中每個元素賦值,陣列滿後將陣列長度擴充二倍並輸出,清空陣列中所有元素且繼承陣列長度,並重新進行手動新增元素無限死迴圈直至輸出-0後結束程式。

package com.tedu; import java.util.Arrays; import java.util.Scanner; /** * 需求: * 定義一個初始陣列,陣列初始長度由控制檯獲取 * 隨後手動給陣列中每個元素賦值,陣列滿後將陣列長度擴充二倍輸

C語言建立迴圈單鏈輸出

Description  依次輸入n(n>0)個整數,建立帶表頭結點的迴圈單鏈表,並依次輸出單鏈表中的元素值。 提示: 結點結構如下: typedef struct Node {      int data;   &